Должен ли я развертывать только 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
Я должен был упомянуть, что скомпилированный является native-кодом (я пишу на C ++, без расширений C ++ / CLI), а не .NET.
Александр Шишенко

Ответы:

16

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

Другой вариант - ваш установщик обнаружит и установит правильный двоичный файл для платформы пользователя. Это увеличивает загрузку, но тогда пользователю не нужно об этом думать. Если вы воспользуетесь этим подходом, вы захотите предоставить пользователю способ переопределить обнаружение на тот случай, если ему по какой-либо причине потребуется конкретная сборка.

GrandmasterB
источник
7
Если ваши пользователи нетехнические, то вы бросаете на них громкие слова (не каламбур).
user253751
3
@GrandmasterB Нетехнические пользователи не будут знать разницу между 32-битной версией и 64-битной версией и не будут знать, какая из них им нужна.
Филипп
3
@Philipp Это легко решается добавлением двух простых фраз, таких как «в большинстве случаев работает отлично» и «на некоторых машинах может быть быстрее», как это делают многие сайты для скачивания.
5gon12eder
1
@ Филипп: нет, совсем наоборот (для второго варианта). Установщик автоматически выбирает нужную версию, не нужно показывать ничего технического. Может быть кнопка «расширенная опция установки» (но пока пользователь не нажимает ее, ничего похожего на 32- или 64-битную версию не отображается.
Док Браун
1
@ 5gon12eder На самом деле, 64-битная версия будет «нормально работать в большинстве случаев». Давайте посмотрим на статистику Steam Survey . Это показывает, что более 83% Windows-машин работают под управлением 64-битных ОС.
Александр Шишенко
7

Ну, во-первых, выясните, будет ли полезно использовать 64-битную версию:

  • Может ли обрабатываемый набор данных быть достаточно большим, чтобы для его работы требовалось 64-битное адресное пространство?
  • Является ли 64-битная версия еще более эффективной или быстрой?
  • Существуют ли какие-либо сценарии взаимодействия, чувствительные к разрядности ваших программ, изменение интерфейса, чтобы сделать его нечувствительным к разрядности, не вариант, и разрядность не в вашем случае диктовать в любом случае?

Если ответ отрицательный для всех, подумайте об отсутствии 64-битной версии.

Теперь, если есть ощутимое преимущество использования 64-битной системы, когда вы можете:
Сделайте это максимально удобным для своих пользователей, без чрезмерного наказания тех, кто знает.

  • Обеспечьте однократную загрузку, если это не слишком много, для установки лучшей версии по умолчанию (разрешите переопределение с помощью параметра командной строки или тому подобное для экспертов, желающих 32-битную сборку на 64-битной).
  • В противном случае обеспечьте обе отдельные загрузки (если потенциальное преимущество использования 64-битной версии достаточно мало, скрывайте ее немного).
  • Несмотря на то, что вы можете предоставить загрузчик для выбора и загрузки только необходимых деталей, что может потенциально уменьшить размер загрузки на несколько порядков, если имеются огромные дополнительные детали, отметьте это заметно как онлайн-установщик и ссылку также на автономный установщик.
    (Вы можете (и, вероятно, должны) разрешить повторное использование загружаемых материалов, включая возможность загрузки всего, по крайней мере, если вы не предоставляете полный автономный установщик.)
Deduplicator
источник
4

В настоящее время люди и сайты, как правило, сами справляются с этим и позволяют пользователю выбирать, хотят ли они . Таким образом, использование User-agentстроки является хорошим способом. IMO, которые также делают ваше приложение и сайт более профессиональными (людям больше нравится то, что он может сделать соответствующие изменения самостоятельно).

Размещение выбрать вариант ссылку / выбора хорошо , так как некоторые эксперты или тех , кто хочет получить другую версию может пойти и получить его.

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

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

Падший ангел
источник
3

Имейте 32-битный установщик, который не содержит исполняемый файл. Пусть он обнаружит целевую платформу, на которой работает, а затем загрузит правильный двоичный файл с вашего сервера.

Philipp
источник
3
Если вы делаете это, убедитесь, что у вас также есть актуальные окончательные версии, доступные для экспертов, которые можно загрузить напрямую. Многие профессиональные ИТ-специалисты предпочитают устанавливать автономную установку (например, так, чтобы установка была точно воспроизведена позже).
Жюль
2
@Jules другой вариант использования отключенных машин. Даже в 2015 году не каждая машина имеет прямой доступ к общедоступному Интернету.