Почему версия x64 бит намного быстрее, чем x32?

Почему версия x64 бит намного быстрее, чем x32?

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

Это не единственный случай и единственная машина, на которой я обнаружил, что x64 работает НАМНОГО лучше, чем так называемая "рекомендуемая 32-битная версия". Мне это действительно интересно, и я хотел бы узнать ответ раз и навсегда.

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

Спасибо !

решение1

Эм-м-м, "в два раза быстрее, если не больше, в зависимости от оборудования, на котором он работает"?? Ах, если бы мир был устроен именно так.

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

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

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

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

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

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

решение2

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

решение3

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

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

решение4

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

Связанный контент