Только вот заметного прироста в скорости между 32 и 64 вы не увидите, так как большенство процев у вас не 64 битные, а 44 битные.Я об этом уже писал пару раз. Я согласен, весь выбор разрядности сводиться к оперативной памяти вашего компьютера. Все ячейки операционной памяти имеют адрес, который в 32- битной системе предоставляется в виде двоичного кода длиной 32 знака. Думаю что почти всем понятно, что 2^32=4294967296 байт, что равняется 4 ГБ. Из этого следует что ячейки, которые «перевалили» за 4 ГБ просто не будут задействованы. Понятно, что 2^64= 18446744073709551616 намного больше чем 2^32. А потому 64 битные приложения будут выполняться быстрее, объясняю - например, 64-разрядный SQL сервер может использовать больше 3-х гиг памяти под базу данных. Это значит, что большая часть базы разместится в памяти, а не на диске, а значит запросы будут выполняться быстрее. Так же и конверторы, кампиляция, и др. НО!!!
Для того, чтобы адресовать произвольный байт внутри этого адресного пространства необходимо 36 бит (2**36=64ГБ). Но память же не 8-мибитная и мы считываем не по 1 байту за раз. Считывается по 8 байт (ширина шины данных 64 линии). При этом прочитать произвольные 8 байт возможности нет - из ОЗУ в процессор всегда передаются данные, выровненные по 8-мибайтовой границе. Собственно, это одна из основных причин почему Вы используете выравнивание данных в программе - если считывать в регистр значение по невыравненному адресу, то вместо одного цикла шины может потребоваться два (вторая причина выравнивая - это необходимость обеспечить размещение переменной в одной строке кэш-памяти, чтобы она не занимала сразу две). Итак, данные передаются по 8 байт. Но процессор не может прочитать скажем байты с адресами 2-9 или 3-10. Читать можно только так: 0-7, 8-15, 16-23... В двоичной записи выравнивание по границе 8 байтов выглядит следующим образом (перепишем вышеприведенные числа в двоичной системе: 00000000-00000111, 00001000-00001111, 00010000-00010111. Вы можете заметить, что все эти диапазоны выглядят одинаково - начинаются адресом на конце которого три ноля и заканчиваются адресом с тремя единицами на конце.
И это совершенно естественно. Адрес выравненный по границе 8 байт - это адрес, который целится на 8 без остатка. Число кратное восьми в двоичной системе - это число заканчивающееся тремя нулями.
А раз последние три бита адреса в любом случае равны нулю, то и передавать их нет никакого смысла. Поэтому для того, чтобы считать по 8-мибайтной шине число из 64 гигабайтного диапазона достаточно иметь 36-3=33 линии шины адреса, а потому и 44 бита обьяснимо.
Кстати это вы сами можете почитать на -
ТУТ