Очень часто в новостях 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-разрядными приложениями в общем случае.
Оставить ответ