Байт против Short против Int (вместе с беззнаковым изменением) в C #? - PullRequest
7 голосов
/ 21 февраля 2011

Мне сказали, что, пока размер памяти не является большой проблемой, всегда лучше использовать int вместо байта или короткого, потому что на самом деле процессору проще обрабатывать int (процессору нужно делать дополнительные вещи для работы с байтами и шортами). Это правда в C #?

1 Ответ

6 голосов
/ 21 февраля 2011

Это зависит больше от процессора, чем от языка. 8-битный микроконтроллер почти наверняка сможет получить доступ к 8-битному символу быстрее, чем 32-битный int.

Осознание этого ограничения позволяет разработчикам алгоритмов планировать соответственно:причина, по которой Rijndael выиграла в конкурсе AES, заключается в том, что дизайнеры планировали сделать 8-битные версии как можно быстрее, в дополнение к заботе о скорости выполнения на 32-битных или более крупных процессорах.

Но для 32-разрядных и 64-разрядных микропроцессоров ключевое значение имеет выравнивание данных и массовый доступ к данным: int доступы часто намного быстрее, чем char доступы, и long long (64-разрядные) может быть еще быстрее для некоторых систем.(Но 64-разрядные операции на 32-разрядной машине выполняются намного медленнее, поэтому использование 64-разрядных типов данных имеет смысл, когда данные на самом деле имеют больше смысла в 64-разрядных системах.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...