Это забавный способ выразить это. Время выполнения не имеет к этому никакого отношения. ЦП предназначен для обработки 32-битных целых чисел, поэтому они наиболее эффективны в использовании.
В 64-битной среде это опять же зависит от процессора. Однако, по крайней мере, на процессорах x86 (которые, насколько мне известно, являются единственным местом, где работает .NET), 32-битные целые числа по-прежнему используются по умолчанию. Регистры просто были расширены, чтобы они могли вместить 64-битное значение. Но 32 по-прежнему по умолчанию.
Поэтому предпочитайте 32-битные целые числа даже в 64-битном режиме.
Изменить: слово «по умолчанию», вероятно, не подходит. ЦП просто поддерживает ряд инструкций, которые определяют, какие типы данных он может обрабатывать, а какие нет. Там нет "по умолчанию". Однако, как правило, существует размер данных, для эффективной обработки которого ЦП предназначен. А на x86, в 32 и 64-битном режиме, то есть 32-битные целые числа. 64-битные значения, как правило, не дороже, но они требуют более длинных инструкций. Я также считаю, что, по крайней мере, Pentium 4 с 64-разрядной поддержкой были значительно медленнее при 64-разрядных операциях, хотя на последних процессорах эта часть не должна быть проблемой. (Но размер инструкции может быть еще)
Меньшие, чем 32-битные значения несколько более удивительны. Да, данных для передачи меньше, и это хорошо, но ЦП по-прежнему захватывает 32 байта за раз. Это означает, что он должен маскировать часть значения, поэтому они становятся еще медленнее.
person
jalf
schedule
10.02.2009