taki_net: (Default)
taki_net ([personal profile] taki_net) wrote2012-07-11 09:00 am

С тупого конца или с острого? 32 бита или 64?

Дано - процессор АМД 64 бит, 4 гига. память. Винда 7-64 бит.. Насколько реально упадет (если упадет) производительность, если вместо того поставить 32-бит ХР?

Кстати, тот же вопрос про Убунту.

[identity profile] pargentum.livejournal.com 2012-07-12 02:22 am (UTC)(link)
Сложный вопрос. У 64-бита от 32 бит есть три основных отличия:
1. Доступно больше памяти. Из консумерских программ таких, которым реально нужно больше гектара, приходит в голову разве что фотошоп. Ну или всякие там CAD, но тоже только при работе с реально сложными чертежами.
2. Доступно больше регистров. Для консумерских программ это, как я понимаю, основной источник повышения производительности, но он сильно зависит от компилятора.
3. Код программы раздувается, как за счет того, что адресные поля теперь 64-битные, так и за счет RAX-префиксов. Это приводит к менее эффективному использованию кэшей первого и второго уровня и к снижению производительности. Воздействие этого эффекта определяется не только компилятором, но и стилем программирования.

То есть вопрос в том, насколько в данной конкретной программе пункт 2 компенсирует пункт 3. Иначе как измерениями этот вопрос решить невозможно.

[identity profile] ygam.livejournal.com 2012-07-12 02:43 am (UTC)(link)
Ну, 1 не имеет значения, так как в условиях размер памяти уже задан. А 2 и 3, по-моему, не столь важны в неэкзотических ситуациях. Обычный говнобизнес-код не успевает использовать много регистров и не заточен под эффективное использования кэша.