32- и 64-разрядные приложения

Обо всем | Нет комментариев

Очень часто в новостях IT упоминают процессоры или приложения с приставками в названии: 32- или 64-бит. Что это значит?

В чем состоит разница между 32- и 64-разрядными приложениями? Какое из них будет работать быстрее?

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

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

В то же время 64-разрядные адреса требуют удвоенного объема памяти для хранения всех указателей. Для структур данных, использующих указатели, это означает, что в 64-разрядном приложении структура будет требовать больше памяти, чем в 32-разрядном. Важнее то, что в любой рассматриваемой системе процессорный кэш фиксированного размера будет одинаковым при работе как с 32-, так и с 64-разрядными приложениями. Из-за большего размера 64-разрядной структуры данных в кэш помещается меньше объектов, что увеличивает количество кэш-промахов. В этом случае процессор простаивает, ожидая доступа к данным в основной памяти.

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

Оставить ответ

Можно использовать: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

1111