Теоретически, больший размер слова делает код немного медленнее . Причина в том, что в 64-битной архитектуре указатели являются 64-битными словами, поэтому структуры данных, которые полны указателей (списки, деревья, хеш-таблицы ...), как правило, используют больше оперативной памяти, чем эквивалентный код на 32 архитектура Общая ОЗУ медленная (она не реагирует так быстро, как хотелось бы ЦПУ), поэтому ЦП встраивает небольшой объем быстрой ОЗУ, называемый кешем, где хранятся наиболее часто используемые данные. Размер кэша ограничен (обычно 32 кБ на современном x86 от Intel). 64-разрядные указатели затрудняют хранение процессором столько элементов данных, что снижает производительность.
Однако ...
Есть несколько предостережений, особенно на платформах x86:
Во многих приложениях основная часть данных не указатели. Например. в трехмерном приложении (игре) большинство данных - это изображения (текстуры) и координаты объекта. На такие данные не влияет размер слова по умолчанию для платформы.
64-разрядные указатели позволяют приложению легко обращаться к более чем 4 ГБ ОЗУ. Для приложений, требующих ОЗУ (например, редактирования фотографий) на машине, имеющей более 4 ГБ ОЗУ, 64-разрядные слова позволяют использовать больше ОЗУ, которое, несмотря на свою медлительность, все же значительно быстрее, чем жесткий диск. В той же ситуации 32-разрядное приложение должно было бы манипулировать блоками данных между оперативной памятью и жестким диском.
На процессорах x86 (именно так и происходит на всех современных ПК и Mac) по историческим причинам 64-битный режим поставляется не только с 64-битными регистрами; он также предлагает вдвое больше регистров приложению, и это значительно повышает производительность. 64-битный режим также поставляется с SSE2, который обеспечивает более быструю обработку данных с плавающей запятой, чем те, которые использовались ранее процессорами x86.
Поэтому на ПК или Mac, по возможности, предпочитают 64-битные ОС и приложения. Лучшая производительность 64-битного кода , а не является следствием большего размера слова; это следствие других особенностей, которые исторически сложились в 64-битном режиме на этих архитектурах.
В других системах (например, PowerPC), когда доступны как 32-битный, так и 64-битный режимы, обычно предпочтительнее 32-битный, за исключением приложений, требующих памяти (которые хотят получить доступ к более чем 4 ГБ ОЗУ, при условии, что этот объем ОЗУ доступен) и для очень немногих приложений, которые хотят выполнять вычисления с использованием более чем 32-битных целых чисел (например, это происходит с некоторыми криптографическими алгоритмами).