Припускаю, що я зосереджуюсь на x86, але мене, як правило, цікавить перехід з 32 на 64 біт.
Логічно, я бачу, що константи та вказівники, в деяких випадках, будуть більшими, тому програми, швидше за все, будуть більшими. І бажання розподілити пам'ять на межі слів для ефективності означало б більше пробілів між розподілами.
Я також чув, що 32-бітний режим на x86 повинен очистити кеш при перемиканні контексту через можливе перекриття адресних просторів 4G.
Отже, які реальні переваги 64 біт?
І як додаткове запитання, чи може бути 128 біт ще кращим?
Редагувати:
Я щойно написав свою першу 32/64-бітну програму. Він робить зв’язані списки / дерева з 16-байтними (32b-версія) або 32-байтовими (64b-версія) об’єктами і робить багато друку на stderr - не дуже корисна програма і не щось типове, але це мій перший.
Розмір: 81128 (32b) v 83672 (64b) - так не велика різниця
Швидкість: 17 с (32b) v 24s (64b) - працює в 32-розрядної ОС (OS-X 10.5.8)
Оновлення:
Зазначу, що розробляється новий гібридний x32 ABI (бінарний інтерфейс додатків), який має значення 64b, але використовує покажчики 32b. Для деяких тестів це призводить до зменшення коду та швидшого виконання, ніж 32b або 64b.