Насколько важно иметь 64-битные программы на 64-битных ОС?


40

Я недавно обновился до 64-битной ОС (Windows 7) со своей старой 32-битной версии. Я заметил, что хотя некоторые приложения доступны в 64-битном режиме (например, DC-клиент, Tortoise SVN, графический драйвер), многие по-прежнему являются 32-битными приложениями (например, Firefox, Adobe Reader).

Итак, насколько важно иметь 64-битные приложения (с точки зрения производительности)? Я использую свой ноутбук для множества разных вещей, таких как игры, программирование и т. Д.


1
Просто подождите, пока вы не захотите играть в свои любимые старые игры с 16-битными установщиками. Обратная совместимость для них обеспечивается в XP64 / 32, Vista32 и 7 32, но не в Vista64 или 7 64.
Ален

1
@Alain: Мне никогда не удавалось запустить старые игры на моей 32-битной ОС, так что, вероятно, это не очень большая потеря.
apoorv020

1
Это если вы любите Master of Orion II и Populous the Beginning так же сильно, как и я;) В любом случае, Windows Virtual PC + старый установочный компакт-диск ОС делает свое дело и спасает вас от двойной загрузки.
Алена

Самым большим улучшением, которое я заметил с точки зрения пользователя, является возможность загрузки файлов большего размера, чем 2 ГБ. Особенно работа с большими изображениями в программном обеспечении Adobe.
Svardskampe

@ Ален, потому что различное программное обеспечение VM имеет различные уровни поддержки аудио / видео драйверов для старых ОС, даже это не всегда будет работать. У меня было чертовски много времени, чтобы заставить Jewels of the Oracle II работать.
Synetech

Ответы:


35

Я не думаю, что так важно иметь 64-битные приложения как таковые.

Преимущество наличия 64-битного приложения состоит в том, что оно может:

  • Доступ к гораздо большему количеству памяти¹
  • Выполните 64-битные операции с регистрами.

64 64-битная программа может быть немного быстрее (в зависимости от того, как она работает). Если ваше приложение требует много памяти (например, Photoshop, 3D-рендеринг и т. Д.), То наличие 64-битной версии даст ему доступ ко всей памяти компьютера. Без этого он будет ограничен где-то 2 ГБ. Это для каждого приложения , поэтому два приложения могут получить доступ к 4 ГБ.

² Выполнение 64-разрядной операции в 64-разрядной операционной системе выполняется быстрее, чем в 32-разрядной операционной системе - для выполнения одной и той же операции потребуется не менее 2 32-разрядных операций.

В отношении стабильности не должно быть никакой разницы между 64-битными и 32-битными приложениями.


Я думаю, что мой DC-клиент теперь хэширует файлы с гораздо большей скоростью.
apoorv020

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

Также возможно сделать предположения о возможностях процессора с x86-64, например, о поддержке SSE3.
afrazier

4
По умолчанию приложения, работающие в 32-битной Windows, будут иметь доступ только к 2 ГБ памяти. Операционная система в целом имеет доступ к общей сумме чуть более 3 ГБ, которую могут использовать все приложения.
Майкл Стил

@ Майкл Стил прав. Максимальная доступная память для системы обычно составляет 3,12 ГБ, остальное зарезервировано для адресации оборудования. Для получения более подробной информации см. Здесь: support.microsoft.com/kb/929605
Стивен Эверс

10

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

Кроме того, 64-битные программы будут работать «лучше», чем 32-битные, поскольку они используют нативную архитектуру системы. Такие операции, как чтение памяти, выполняются изначально и т. Д. Это означает, что ОС не нужно выполнять никакой дополнительной работы, «переводя» (упаковка / распаковка памяти и т. Д.) Команды, которые использует приложение.

Однако большинство программ, таких как Firefox, Word, Adobe Reader и т. Д., Проводят большую часть своего времени в ожидании пользовательского ввода, поэтому эффективность не обязательно является главной задачей. Кроме того, большинству этих приложений (на данный момент) не требуется дополнительная память, доступ к которой будет иметь 64-битная скорость.

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


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

1
@ Джошуа: Системные драйверы действительно зависят от ОС и арки машины. Некоторые 64-битные процессоры не имеют режимов, просто добавлены 64-битные инструкции. x86_64 имеет дорогой переключатель режимов для перехода с 64 на 32 и обратно, поэтому драйверы почти всегда должны быть 64-битными.
Zan Lynx

Пожалуйста, объясните, что вы подразумеваете под работой "лучше".
glenviewjeff

5

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

Конечно, обычно необходимые библиотеки поставляются вместе с самим приложением, но основные - Windows - хранятся дважды - одна из них - 32-битная, а другая - 64-битная.

Они также занимают больше памяти в ОЗУ, если у вас одновременно запущено одно 32-битное приложение, а другое - 64-битное - оба приложения загрузили свою собственную версию библиотеки и поэтому используют больше ОЗУ, чем могли бы, если бы оба использовали одну и ту же библиотеку.

Итак, ради экономии оперативной памяти и места на жестком диске - попробуйте запустить и установить только 64-битные приложения и устанавливать 32-битные только в том случае, если вы не можете найти 64-битную версию. Теперь все больше и больше приложений поставляются в обеих версиях.


4

Ответ "это зависит"

Некоторые 32-битные «приложения» не будут работать в 64-битном режиме, например, графические драйверы и расширения оболочки (такие как Tortoise SVN). В таком случае вам нужна 64-битная версия.

Для других нормальных приложений это зависит от того, что они делают.

Если у вас есть, например, 16 ГБ памяти и вы используете сервер SQL с очень большой базой данных, то очень важно иметь 64-битную версию SQL.

Однако, если у вас есть 4 ГБ памяти (почти 1 ГБ «украдено» видеокартой), возможно, у вас недостаточно памяти, а использование 64-разрядных приложений (которые могут потребовать больше памяти) может фактически замедлить работу вашей системы.

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

Лично, если я ищу утилиту или маленькое приложение для моей машины, я проверю, работает ли она с 64-битной операционной системой, но то, является ли приложение 32-битным или 64-битным, обычно не входит в мой список приоритетов. ,

Согласно Process Explorer, в настоящее время у меня запущено 25 64-разрядных процессов и 28 32-разрядных процессов, игнорируя Chrome)


3

Имейте в виду, что в 64-битной Windows 32-битные приложения выполняются через уровень эмуляции, известный как WOW64 , который накладывает некоторые дополнительные ограничения, которых нет при работе под 32-битной ОС Windows.

С https://msdn.microsoft.com/en-us/library/aa384219(v=vs.85).aspx :

Производительность и потребление памяти под WOW64

  • Процессорное оборудование. Инструкция по эмуляции выполняется на чипе. На процессоре x64 инструкции выполняются изначально микроархитектурой. Поэтому скорость выполнения под WOW64 на x64 аналогична скорости под 32-битной Windows. На процессоре Intel Itanium все больше программного обеспечения задействовано в эмуляции, и в результате страдает производительность.
  • API-нагрузка. Эти издержки невелики по сравнению с самим вызовом ядра NT. Функции ядра NT предназначены для нечастого вызова.
  • Размер виртуальной памяти. На процессоре Intel Itanium WOW64 добавляет значительную нагрузку, если два или более экземпляров одного и того же 32-разрядного приложения работают одновременно. Это происходит из-за собственных страниц размером 8 КБ на Intel Itanium, что усложняет эмуляцию собственных страниц объемом 4 КБ в архитектуре x86 (больше страниц помечаются как доступные для записи; все доступные для записи страницы являются частными для процесса). Это может отрицательно повлиять на масштабируемость служб терминалов на определенных процессорах. Это не относится к процессору x64.
  • Рабочий набор. WOW64 увеличивает размер рабочего набора приложения.

  • WOW64 позволяет 32-разрядным приложениям использовать преимущества 64-разрядного ядра. Поэтому 32-разрядные приложения могут использовать большее количество дескрипторов ядра и дескрипторов окон. Однако 32-разрядные приложения могут не иметь возможности создавать столько потоков в WOW64, сколько они могут при естественном запуске в системах на базе x86, поскольку WOW64 выделяет дополнительный 64-разрядный стек (обычно 512 КБ) для каждого потока. Кроме того, некоторое количество адресного пространства зарезервировано для самого WOW64 и структур данных, которые он использует. Зарезервированная сумма зависит от процессора; на Intel Itanium зарезервировано больше, чем на процессоре x64.


+0. Каковы эти ограничения? Пожалуйста, отредактируйте свой ответ и объясните.
незабываемый

Копаем зомби? Этому ответу почти шесть лет, понимаешь ...
Адам Лоуренс

+1. Спасибо за ваше редактирование! Я попытался опубликовать более новый вариант вопроса, но он был закрыт как "слишком широкий". Насколько я знаю, всем открытым версиям этого вопроса, повсюду в Super User, не менее шести лет.
незабываемый

1

Позволяет не сокращать это коротко. 64-битные камни. Если вы можете получить его, используйте его. Visual Studio и SQL Server (даже просто с использованием только Management Studio) выигрывают от 64-разрядной версии. Нельзя сказать, что это того не стоит. Нет, в этом нет необходимости, но мы должны стремиться повысить скорость работы ноутбуков и ноутбуков разработчиков и других пользователей (даже не технарей, которые используют простые MS Word). Почему бы не воспользоваться преимуществами, не продвигать и не обсуждать 64-битные технологии в своей компании? Это больше не так уж ново ... это становится или стало обычным явлением.

Смешно говорить, что 64-битная версия вам не очень выгодна, так же, как нелепо говорить мне, что добавление 4 гигов для завершения 8 гигов на любом ноутбуке ни для какого пользователя не стоит. Это просто еще один пример жадных администраторов IT-сетей или корпораций, в которых обновление до 64-битной системы в большинстве случаев обычно бесплатное, а затем для оперативной памяти это смехотворно дешево и повышает производительность вашего пользователя в два раза.

Так что нет, это не обязательно, но должно быть обязательно. Мне не нравятся минималисты, когда речь идет о таких инструментах, как настольные компьютеры и ноутбуки.

Я действительно не согласен, когда люди говорят, что 64-битные приложения - это то, с чем вам все равно нужно быть очень "осторожным" ... по крайней мере, не так сильно, как когда они только появились, это точно.

Если бы 64-битной была такая проблема, то большинство настольных компьютеров и ноутбуков в наши дни не стали бы переходить на 64-битную Win 7. Вся наша компания выпускает 64-битную Win 7 Pro для ВСЕХ пользователей (более 100,00 сотрудников)


Было бы полезно, если бы вы могли конкретно объяснить, что «качается» в 64-битной версии. Техническое объяснение - вот что ищется здесь.
glenviewjeff

Так имеет ли смысл добавлять 4 гигабайта к машине, которая никогда не занимала больше памяти, чем раньше? Хорошо, если вы знаете, что будете использовать его, если он доступен, но в остальном это просто не нужно. Это не имеет ничего общего с жадностью, но просто то, что вы можете инвестировать в вещи, которые могут иметь больше смысла. Модернизация ЦП практически в любом случае принесет преимущества. Не говоря уж о том, что много оперативной памяти - это плохо (у меня есть 16 ГБ), но я бы не стал обновлять свой старый ноутбук до 8 ГБ, так как 4 ГБ действительно хорошо справляются с установкой Arch! 64 бит, однако, это что-то. это действительно в большинстве случаев является преимуществом, верно
Ларки

0

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

Следует соблюдать осторожность, когда у приложения имеется 64-битная версия с плохой поддержкой сторонних производителей. Я думаю о Excel 2010, который доступен в 64-битной форме. Сам по себе Excel 64 работает отлично, но несколько сторонних расширений и надстроек уже перенесены. В качестве другого примера рассмотрим Python для Windows. Опять же, ряд важных неосновных модулей недоступен или их трудно получить в 64-битной форме.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.