-1

У меня была 32-битная Ubuntu (с Xfce), и теперь я переключаюсь на 64-битную Xubuntu, и я не уверен, но я думаю, что 32-битная версия имела лучшую производительность, но только ощущение. Я хочу знать, какой из 32 или 64 даст лучшую производительность.

Я спрашиваю не о ядре, а о всей системе.

Моя машина: ноутбук Asus k51e с 4 ГБ оперативной памяти и процессором AMD Sempron 2 ГГц.

4 ответа4

3

AMD втиснула 64-битную поддержку в Sempron без редизайна. Это неизбежно повлекло за собой множество компромиссов, поскольку дизайн, оптимизированный для 64-битной работы, имел бы много принципиальных отличий на очень низком уровне.

В результате 64-разрядные операции в 64-разрядном режиме на Sempron выполняются примерно на 35% медленнее, чем аналогичные 32-разрядные операции в 32-разрядном режиме. Конечно, если вам нужно две 32-битные операции вместо одной 64-битной, это все равно выигрыш для 64-битного режима. Но если вы заменяете 64-битные операции 32-битными, как ядро делает для указателей, вы принимаете это снижение производительности.

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

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

Так что ваши результаты не так уж удивительны.

2

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

2

Сделайте поиск, и вы найдете тонны тестов там, как это. В среднем 64-битное приложение будет иметь немного лучшую производительность, потому что у x86-64 больший номер регистра (что сокращает доступ к памяти и во многих случаях также уменьшает потери в кеше), подразумевает SSE2 по умолчанию и другие новые функции. Но некоторые программы могут страдать от большего количества кеш-ошибок, потому что они используют много обращений к указателям и, возможно, больше типов в 64-битных ОС (как long в Linux, хотя в Windows этого не происходит).

Разница в производительности при сравнении приложения, работающего на 64-битной платформе, с 32-битной платформой в SPARC составляет порядка 10-20% при переходе на 64-битную виртуальную машину. На платформах AMD64 и EM64T эта разница колеблется от 0 до 15% в зависимости от количества указателей, обращающихся к вашему приложению.

https://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_performance

1

Пространство - это производительность.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .