64-разрядные преимущества производительности

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

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

Ответы, связанные с обоими, неуправляемым и управляемым кодом, приветствуются.

15
задан TripShock 27 July 2010 в 12:56
поделиться

5 ответов

Чтобы воспользоваться преимуществами 64-битной архитектуры новейших ЦП, вам необходимо:

  • использовать 64-битный ЦП и ОС
  • , разработанную специально для 64-битных версий с использованием 64-битного API - реализация должна быть продолжена. вплоть до самого простого кода, работающего с регистрами ЦП (обычно написанного на ассемблере), чтобы воспользоваться преимуществами дополнительных регистров.
  • разработали приложение, которое действительно выиграет от дополнительных регистров - WinRAR - это приложение, которое будет использовать все преимущества дополнительных регистров, поскольку оно включает в себя множество вычислений со сложными алгоритмами. Если вместо этого вы напишете приложение с очень простыми алгоритмами, ему не потребуется дополнительное адресное пространство регистров и оно не будет работать быстрее на 64-битной
  • , примите во внимание также, что при использовании регистра ЦП, даже если вы не используете все адресное пространство для значения, оно все равно будет занимать столько же места (= 64 бита) .. поэтому написание небольшого 64-битного приложения с целью получения оптимизированного кода просто не будет работать .. это приложение будет занимать вдвое больше ОЗУ чем, если бы он был разработан под 32 бит, и он может быть даже медленнее.64-битное программирование имеет смысл для приложений, использующих тяжелые алгоритмы или которым необходимо выделять огромные объемы памяти (4 Гб - это предел для 32-битного приложения).
4
ответ дан 1 December 2019 в 02:37
поделиться

Когда перестали врать в рекламе? Я что-то пропустил? ; -)

Главное преимущество в производительности заключается в том, что в 64-битных системах вы можете выделить более 4 ГБ ОЗУ (на самом деле в большинстве систем это больше 2 ГБ) без подкачки. Это огромное преимущество в скорости , если оно вам нужно .

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

Кроме того, 64-битные процессоры также имеют команды, которые работают с 64-битными типами данных (так что вам не нужно эмулировать те, которые имеют 32-битные типы). Это тоже преимущество, но оно а) не такое большое, потому что алгоритмы должны использовать эти типы, а большинство - нет. Б) они все еще медленнее, чем 32-битные типы (но быстрее, чем эмуляция).

Чтобы дать вам представление, вот старый анекдот от одного суперкомпьютера: «Для загрузки данных с дисков требуется один день, затем программе требуется пять минут для обработки данных, а затем нам нужен еще один день, чтобы сохранить результат на диск ». Чтение данных из ОЗУ в 1000–1000000 раз быстрее, чем доступ к диску.

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

4
ответ дан 1 December 2019 в 02:37
поделиться

Насколько я понимаю, в большинстве случаев прироста производительности как такового нет, кроме возможности использовать больше памяти. (Хотя это может дать более высокую производительность, если вы часто работаете с 64-битными типами данных, например).

1
ответ дан 1 December 2019 в 02:37
поделиться

Вот несколько отличных ответов.

Как было сказано, вы можете получить доступ к неограниченной оперативной памяти, что повысит производительность , если она вам понадобится .

Я бы смиренно добавил, что , если он вам не нужен , но все равно использовать его, это ухудшит производительность.

Никогда не упускайте из виду один из древнейших законов науки:

Природа не любит вакуум

1
ответ дан 1 December 2019 в 02:37
поделиться

Архитектура x64 удваивает количество регистров общего назначения, доступных в архитектуре x86, так что компиляторы могут хранить больше данных в (очень быстрых) регистрах ЦП, а не в (относительно медленной) ОЗУ. .

17
ответ дан 1 December 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: