Чи слід розгорнути лише 32-розрядні або 32- та 64-бітні версії для Windows?


13

У мене є кросплатформна програма, написана мовою компіляції.

  • Для Linux зазвичай доступні як версії amd64, так і i386, тому користувач може вибрати версію, відповідну для поточного середовища.
  • В Mac прийнято робити Universal Binary, щоб він міг підтримувати кілька версій комп'ютерів Apple. Або просто надайте 64-бітну версію, оскільки всі сучасні комп'ютери Apple використовують 64-бітну архітектуру та ОС.

Я не хочу плутати користувачів із запитанням "Яка ти архітектура?", Але розгортання лише 32-бітного - це погана ідея, оскільки ця програма використовує 64-бітну магію оптимізації і працює набагато швидше на цих машинах.

Мої ідеї:

  • Встановіть як 32-, так і 64-бітні версії програми та виберіть під час виконання. (Потрібна обгортка, тому зробити додаток для натискання та запуску (наприклад, uTorrent) буде складно).
  • Визначте архітектуру за User-agentдопомогою веб-сайту, щоб користувач міг автоматично завантажити відповідну версію (та зробити посилання на «альтернативні версії»). (Це стиль Google Chrome)
  • Змусити користувача використовувати 32-розрядний додаток і зробити 64-бітну версію "лише для експертів"? (як VLC)

Що мені робити в Windows?


Чи отримує ваша програма від 64-бітного процесу?
CodesInChaos

Так, він використовує криптографічну бібліотеку, яка працює швидше в 64-розрядному.
Олександр Шишенко

На скільки швидше?
Роберт Харві

2
Крім того, чи немає опції побудови AnyCPU у Visual Studio? blogs.microsoft.co.il/sasha/2012/04/04/…
Роберт Харві

1
Я повинен зазначити, що компільований натив-код (я пишу на C ++, без розширень C ++ / CLI), а не .NET.
Олександр Шишенко

Відповіді:


16

Я дійсно не вважаю, що для кінцевого споживача величезна складність повинна вибирати або 32-бітну, або 64-бітну версію під час завантаження. Але якщо ви можете скористатися рядками користувача-агента, щоб зробити пропозицію ще краще.

Інший варіант полягає у тому, щоб ваш інсталятор виявив і встановив правильну бінарну платформу для користувача. Це робить для більшого завантаження, але тоді користувачеві не доведеться думати про це. Якщо ви скористаєтеся таким підходом, ви захочете надати певний спосіб, щоб користувач міг перекрити виявлення, якщо їм потрібна конкретна збірка з будь-якої причини.


7
Якщо ваші користувачі нетехнічні, ви кидаєте на них великі слова (не каламбур).
користувач253751

3
@GrandmasterB Нетехнічні користувачі не знають різниці між 32-бітовою версією та 64-бітовою версією та не знають, яку саме вони потребують.
Філіп

3
@Philipp Це легко вирішити, додавши два простих фрази, як "працює добре в більшості випадків" і "може бути швидше на деяких машинах", як це робиться на багатьох сайтах завантаження.
5gon12eder

1
@Philipp: ні, зовсім навпаки (для другого варіанту). Інсталятор автоматично вибирає потрібну версію, не потрібно показувати нічого технічного. Можливо, є кнопка "розширена опція встановлення" (але поки користувач не натискає її, не відображається нічого, як 32- або 64-розрядна версія.
Doc Brown

1
@ 5gon12eder Насправді, 64-розрядна версія буде "працювати нормально в більшості випадків". Давайте подивимось на статистику опитування Steam . Це показує, що понад 83% машин Windows працює з 64-розрядною ОС.
Олександр Шишенко

7

Ну, спочатку з’ясуйте, чи корисне використання 64-бітної версії:

  • Чи може оброблений набір даних коли-небудь бути достатньо великим, щоб потрібен 64-бітовий адресний простір для роботи?
  • Чи є 64-бітова версія все ефективнішою чи швидшою?
  • Чи існують якісь сценарії сумісності, чутливі до бітових програм вашої програми, зміна інтерфейсу, щоб зробити його нечутливим до бітсу, - це не варіант, і біт все одно не диктує?

Якщо відповідь - не всім, подумайте, що взагалі немає 64-бітної версії.

Тепер, якщо є відчутна перевага використання 64-бітного, коли ви можете:
зробіть це максимально комфортно для своїх користувачів, не надто накладаючи штрафу на тих, хто це знає.

  • Забезпечте одноразове завантаження, якщо це не надто великі накладні витрати, які встановлюють найкращу версію за замовчуванням (дозвольте переосмислення параметрів командного рядка або таких для експертів, які хочуть 32-бітну збірку на 64-бітній).
  • В іншому випадку надайте обидві окремі завантаження (якщо потенційна перевага для використання 64-бітових є досить маленькою, прихойте це трохи).
  • Хоча ви можете надати завантажувачу для вибору та завантаження лише необхідних деталей, що потенційно може зменшити розмір завантаження на порядок, якщо є величезні додаткові частини, позначте це помітно як онлайн-інсталятор і посилання також на офлайн-інсталятор.
    (Ви можете (і, мабуть, повинні) дозволити повторне використання завантаженого файлу, включити опцію для завантаження всього, принаймні, якщо ви не надаєте повного офлайн-інсталятора.)

4

В даний час люди і сайти, як правило, вирішують це самостійно і дозволяють користувачеві вибрати, якщо вони хочуть . Тож використання User-agentрядка - хороший шлях. ІМО, який також робить вашу заявку та веб-сайт, виглядає більш професійно (людям подобається щось більше, якщо він здатний самостійно вносити відповідні корективи).

Розмістити посилання / вибір вибору версії добре, оскільки деякі експерти або люди, які хочуть отримати іншу версію, можуть її отримати.

Ви також можете розмістити на сторінці вибору версії клейку примітку (таку, яку схожу на цю ), пояснюючи, як користувачі можуть перевіряти тип системи ОС (він же клацніть правою кнопкою миші Computerта вибирати властивості бла-бла ...), щоб допитливі люди могли перевірити та бути впевненими що ви пропонуєте правильну версію.

Тип системи ОС


3

Майте 32-бітний інсталятор, який не містить виконуваного файлу. Нехай він виявить цільову платформу, на якій працює, а потім завантажить правильний бінарний файл з вашого сервера.


3
Якщо ви це робите, переконайтеся, що у вас також є доступні фактичні остаточні версії, які фахівці зможуть завантажити безпосередньо. Багато професійних ІТ-фахівців вважають за краще встановити офлайн-установку (наприклад, щоб установка була точно відтвореною пізніше).
Жуль

2
@Jules Іншим випадком використання є відключені машини. Навіть у 2015 році не кожна машина має прямий доступ до загальнодоступного Інтернету.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.