Если я использую 64-разрядную ОС (Windows XP x64 edition) и программа имеет 32-разрядную и 64-разрядную версии, каковы преимущества использования 64-разрядной версии? Это будет быстрее?
3 ответа
если вы запустите 64-битную версию, она сможет использовать больше памяти, и если она будет хорошо оптимизирована (как и некоторые игры), производительность может увеличиться на <10%. Но в целом это не чувствуется конечными пользователями.
Я думаю, что большинство людей работают на 64-битной основе только из-за проблем с памятью.
64-разрядная версия XP не более безопасна, чем 32-разрядная.
Vista и (что лучше) Windows 7 представили в 64-битном режиме повышенную безопасность с аппаратной поддержкой DEP, Kernel Patch Protection и обязательной подписью драйверов.
Таким образом, единственным преимуществом в XP является то, что 64-битная программа может использовать более 4 ГБ памяти.
Однако, практически говоря, ни одна программа не нуждается в таком количестве памяти, кроме как на больших серверах.
Если программа выполняет любое из:
- доступ к более чем 2 или 3 ГБ памяти
- делать арифметику с 64-битными целыми числами, особенно умножать и делить
- предполагают выше поколение процессора / набор функций в 64-битной сборке и воспользоваться этим (например , инструкциями SSE)
- используйте SIMD-регистры в два раза шире, чтобы получить хороший эффект
тогда 64-бит может быть большой победой.
Если это не так, то 64-битная версия будет больше и будет занимать больше памяти, а может и медленнее! Я провел тестирование программ и библиотек, построенных в обоих направлениях, и 32-битная версия была быстрее. По-видимому, он кешируется хуже: более крупные указатели приводят к более крупным структурам, а повышенное использование памяти не позволяет вписаться в кэш-память такого же размера на любом данном уровне. Дополнительные регистры не восполняли это.
YMMV с каждым поколением и моделью процессора и между брендами. Но в целом доступ к памяти является узким местом с точки зрения скорости, и это устойчивая тенденция.