Почему 64-разрядная версия намного быстрее, чем 32-разрядная?

В последнее время я заметил, что мой старый ноутбук (Toshiba Satellite L500-1DT) лучше работает с версией Ubuntu на базе x64, чем с x32. Ну, с более быстрым, я имел в виду - Adobe Flash видео и приложения работают намного лучше. Программный центр и приложения APT работают очень плавно. Все работает без нареканий на x64. Охлаждающий вентилятор работает намного меньше (не охлаждает систему постоянно, как на x32). На x32 битной версии у меня было ощущение, что мой компьютер перегреется. 2 недели назад моя батарея умерла, когда я запустил версию x32. Я не знаю, было ли это из-за перегрева или совпадения. Было очень жарко и очень, очень медленно. Я использую двухъядерный процессор Celeron® T3000 с тактовой частотой 1,80 ГГц × 2 и видеочипсет Intel GMA45 (с общей памятью 256 Мб). Оперативная память - 4 ГБ. Ubuntu 11.10.

Это не единственный случай, и я обнаружил, что x64 работает на FAR лучше, чем так называемая «Рекомендуемая 32-разрядная версия». Мне очень интересно об этом, и я хотел бы знать ответ раз и навсегда.

Пожалуйста, объясните мне это или наведите ссылку.

Спасибо!

3
задан 24 October 2013 в 13:00

4 ответа

64-битная ОС работает в два раза быстрее, если не больше, в зависимости от аппаратного обеспечения, на котором она работает. Переход с 32-разрядного на 64-разрядный режим повышает способность ОС обрабатывать большие объемы данных. Поэтому он работает намного быстрее. Кроме того, 64-разрядная ОС будет использовать больше памяти, чем 32-разрядная ОС. 64-битный регистр может хранить 2 64 = 18446744073709551616 различных значений, число которых превышает 18 квинтиллионов. На данный момент процессоры x86-64 используют 48 строк физического адреса; поэтому процессор с 64-битными адресами памяти может напрямую обращаться к 264 терабайтам байтово-адресуемой памяти.

0
ответ дан 24 October 2013 в 13:00

Такая крайняя разница не типична и не связана с какими-либо общими преимуществами 64-битного режима.

Я подозреваю, что вы видите какую-то ошибку, связанную с вашим оборудованием, или ошибку в прошивке вашего устройства, которая вызывается 32-битным ядром Ubuntu.

0
ответ дан 24 October 2013 в 13:00

Вкратце: в режиме x86_64 доступно больше операционных регистров, чем в x86. Кроме того, существует смутно названный x32 ABI, который не x86 (_32), а скорее смесь x86_64 и чистого x86. И, кстати, статья, на которую я дал вам ссылку, имеет хорошее объяснение того, почему x86_64 имеет более высокую производительность.

0
ответ дан 24 October 2013 в 13:00

Э-э, « в два раза быстрее, если не больше, в зависимости от аппаратного обеспечения, на котором он работает » ?? Ах, если бы только мир работал таким образом.

Например, взгляните на эту статью: Ubuntu 12.04 LTS: 32-битная производительность против 64-битной . В то время как некоторые из синтетических тестов показывают резкое увеличение производительности, есть также много, которые показывают либо незначительное (от 10% до 30%) увеличение, ни увеличение, ни даже снижение производительности. И это всего лишь синтетические тесты, которые обычно не дают полезного представления о том, какой будет производительность системы при выполнении чего-то другого, кроме выполнения тестов.

На производительность системы очень сильно влияют «системные» узкие места, и вы не можете сделать быстрые обобщения, так как двойные биты означают удвоенную производительность.

Сказав это, я все еще пытаюсь использовать 64-битные версии операционных систем, потому что я ожидаю, что производительность будет, по крайней мере, несколько лучше. Хотя размер регистров ЦП удваивается, возможно, более важным является то, что количество регистров увеличивается с восьми в x86 до шестнадцати в 64-битном режиме x86_64. Это позволяет компилятору потенциально быстрее создавать код. Существует ряд этих настроек команды , которые, хотя, вероятно, и незначительны в любом случае, могут сложиться при использовании в масштабе всей системы с полезным приростом производительности.

Существует также небольшая потеря производительности для программ, скомпилированных для 32-разрядных x86, поскольку они могут работать в «режиме совместимости».

Люди часто делают обобщение, что если у вас есть только 4 ГБ памяти или меньше, то нет никакой разницы между 32-разрядной и 64-разрядной версиями и, следовательно, нет причин использовать 64-разрядную версию. Это просто неправда. Архитектура команд ЦП достаточно различна (IMO) в 64-битном режиме, чтобы предпочитать использовать 64-битную ОС, если ваше оборудование поддерживает это.

В конце концов, вы бы не хотели запускать 32-битный процессор в 16-битном режиме? : -)

0
ответ дан 24 October 2013 в 13:00

Другие вопросы по тегам:

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