
Недавно я заметил, что мой старый ноутбук (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 терабайтам байт-адресуемой памяти.