Я полагаю, что я сосредоточен на x86, но меня обычно интересует переход от 32 до 64 бит.
Логически, я вижу, что константы и указатели, в некоторых случаях, будут больше, поэтому программы, вероятно, будут больше. И желание выделить память на границах слов для эффективности будет означать большее количество пробелов между выделениями.
Я также слышал, что 32-битный режим на x86 должен очищать свой кеш при переключении контекста из-за возможных перекрывающихся адресных пространств 4G.
Итак, каковы реальные преимущества 64-битного?
И как дополнительный вопрос, будет ли 128 бит еще лучше?
Edit:
Я только что написал мою первую 32-битную программу. Он делает связанные списки/деревья из 16-байтной версии (32b) или 32-байтной (64-битной версии) объектов и делает много печати на stderr - не очень полезная программа, а не что-то типичное, но это мой первый.
Размер: 81128 (32b) v 83672 (64b) - так что не большая разница
Скорость: 17 с (32b) v 24s (64b) - работает на 32-битной ОС (OS-X 10.5.8)
Update:
Я отмечаю, что разрабатывается новый гибридный x32 ABI (Application Binary Interface), который является 64b, но использует указатели 32b. Для некоторых тестов это приводит к меньшему коду и более быстрому исполнению, чем 32b или 64b.