64-битный процессор потребляет больше памяти (ОЗУ), чем 32-битный?
3 ответа
Процессор сам по себе не потребляет память. Он обращается к памяти, используя адрес разных размеров. В результате 64-разрядный процессор может обрабатывать до 17,17 миллиардов гигабайт памяти, тогда как 32-разрядный процессор может обрабатывать только 4,29 гигабайта.
Если вы имели в виду: «64-битное приложение потребляет больше памяти, чем 32-битное приложение?«тогда да, это так. Адреса памяти в 64-битном процессе имеют длину 8 байтов вместо 4 байтов. Таким образом, хотя вы не увидите удвоения использования памяти, эти тысячи указателей, используемых в приложении, будут использовать в два раза больше памяти, чем обычно.
32-разрядных адресов уже давно не хватало, и многие компьютеры теперь стандартно поставляются с 4 гигабайтами памяти, которые 32-разрядные процессы не могут адресовать полностью из-за накладных расходов при отображении памяти операционной системы и оборудования. 64-битные адреса будут продолжать работать очень и очень долго.
Тем не менее, многие люди не создают правильный 64-битный код, и GNU/Linux настроен для поддержки этих ошибок. Поэтому во многих случаях 64-разрядные приложения работают как 32-разрядные (настройка mmap): http://marc.info/?l=openbsd-misc&m=130683944229077&w=2. Разработка настоящего 64-битного кода - это то, над чем люди должны работать.
Большинство потребительских 32-битных процессоров больше не работают. Даже при использовании дополнительной памяти из-за 8-байтовых указателей и других аспектов современные 64-разрядные процессоры по определению являются более новыми и, как правило, более эффективными, чем процессоры, появившиеся в 32-разрядные дни.
Итак, подведем итог: использование дополнительной памяти является по большей части неактуальной проблемой, учитывая увеличение стандартных размеров памяти на современных компьютерах и скорость работы процессоров.
Да.
Но я должен напечатать больше, чтобы представить ... Вздох..
Программа A, скомпилированная как 32-битное приложение, имеет меньший объем памяти, чем та же программа B, которая была скомпилирована как 64-битная. Это потому, что каждый блок памяти имеет больший адрес.
Пример: предположим, что в вашей телефонной книге были все очень локальные телефонные номера, они, вероятно, просто напечатали бы номера без кодов городов. Но чтобы вместить больше чисел / адресов, печать кодов области занимает больше места / чернил / массы и т.д.
64-битные программы имеют несколько более высокий уровень использования памяти из-за проблем с оптимизацией, но на практике этот эффект незначителен . Преимущества 64-битной архитектуры с 64-битным программным обеспечением, такие как гораздо более высокая емкость адресации памяти, намного превосходят увеличение использования памяти практически во всех ситуациях.