плане оптимизации, если я буду использовать вместо 32битрых регистров, 8 битные для вычислений, ну, если это позволяют обстоятельства?
не будет лучше. можно сделать хуже, если не выравнивать данные
Размер регистра определяется (грубо) числом транзисторов, из которых он состоит. При использовании части регистра (16 или 8 бит из 32) часть транзисторов просто не используется. Скорость работы регистра зависит от быстродействия его транзисторов. Неиспользование части из них очевидно на скорость не влияет.
Но есть эффект второго уровня. Скорость чтения из памяти данных может сильно зависеть от их положения в памяти. Неудачное расположение может замедлить доступ к данным. (Хотя и может сэкономить объем используемой памяти.) Поэтому общее правило - разрядность процессора надо использовать по-максимуму.
до 32х разрядности высказывание истинно. а вот при 64х разрядности - нет. 64разрядные инструкции (те что с рекс префиксом) медленнее их 32битных аналогов на 25%, а также энергозатратнее (до 400%). А если говорить про энергозатратность - алгорит реализованный через симд будет быстрее, но процессор в это время будет нагреваться до пиковых нагрузок (если алгоритм достаточно длинный), а вот без симд перегреть современный процессор достаточно трудоемко.
это получается для систем со слабым 64битным процом эффективнее использовать 32битную операционную систему?
на слабых 64 бит ПК - 32 битные ОС будут работать быстрее, но цена - отказ от 64 бит приложений....
Если мы про проц говорим - спорно. Нагрузка на память больше, но и регистров больше.
регистры доступные без рекс префикса обрабатываются на 25% быстрее.
И это про какой-то конкретный процессор или... откуда это взялось?
Обсуждают сегодня