TL; DR; На Intel/AMD CPUs Вы примерно так же быстры в режиме на 32 бита как в режиме на 64 бита.
Что касается несколько более подробного ответа:
Это зависит от большого количества вещей:
В качестве невыполнение: Вы получите доступ к намного большему адресному пространству. Это - хорошая вещь.
Это адресное пространство используется для большого количества вещей, включая:
- Отображение устройств IO (например, графический буфер карт, который уже может составить до 6 гибибайт),
- Физическая память (который вызывает макс. предел RAM на 4 ГиБ, не принимая ГОРОХА),
- Для виртуальной памяти (отобразите программы, полу случайным образом к этому для безопасности. Так оставьте некоторых ГБ свободный. Другими словами, если у Вас есть 32 бита и некоторый PCI [e] пространство, затем не используйте больше затем 512 МиБ и для RAM и для IO, так, чтобы Вы остались с достаточным адресным пространством для программ карты в и сохранять это полуслучайным для безопасности). См. http://en.wikipedia.org/wiki/ASLR как хорошую начальную точку на рандомизации расположения адресного пространства.
В качестве производительность:
- Код на 64 бита использует указатели, которые являются дважды размером точек на 32 бита. Это делает программы больше, и Вы заканчиваете с меньшей памятью для других задач, таких как буферы.
- Для больших программ нужно больше кэша, или Вы получаете уменьшенную эффективность кэша.
На AMD или Intel единственный ЦП:
- В amd64 режиме Вы получаете дважды количество регистров, чем в режиме на 32 бита. Так как x86 архитектура имеет относительное небольшое число регистров, Вам был нужен большой доступ к памяти, который является плохой вещью. Если Ваша программа не является памятью, связанной затем, это может ускорить вещи довольно существенным количеством.
- Amd64 (который является и Intel и AMD ЦП в режиме на 64 бита, чтобы не быть перепутанным с Intels IA64, укусил режим, который очень отличается) только поддерживают нет - выполняют бит в их таблицах страниц, если Вы работаете в режиме на 64 бита. Безопасность, мудрая, Вы также хотите это.
Однако для Вашего *средняя программа и на amd64: нет никакого изменения скорости. Преимущества и недостатки кажутся одинаково большими и уравновешивают друг друга. Это не верно на другой архитектуре, такой как питание ПК 64, которые идут с достаточными регистрами в обеих версиях на 32 и 64 бита микросхемы.
Наконец, по практическим причинам:
- Всегда используйте версию на 64 бита, если Вы думаете, что могли бы развернуть память вне 4 гибибайт.
- Если у Вас есть несколько попыток установки ОС сохранить ту же версию используемой на всех них для хранения вещей простыми. (Который в эти дни означает, используют версию на 64 бита на всех них).
- И поскольку безопасность используют его на всех узлах с 512 МиБ + RAM, если Вы используете ОС с рандомизацией адресного пространства. (Читайте: для любой современной ОС).
Ian Panzica
17.08.2015, 16:04
Ссылка