169 похожих чатов

Я бы хотел узнать, будет ли лучше работать программа в

плане оптимизации, если я буду использовать вместо 32битрых регистров, 8 битные для вычислений, ну, если это позволяют обстоятельства?

11 ответов

16 просмотров

не будет лучше. можно сделать хуже, если не выравнивать данные

Размер регистра определяется (грубо) числом транзисторов, из которых он состоит. При использовании части регистра (16 или 8 бит из 32) часть транзисторов просто не используется. Скорость работы регистра зависит от быстродействия его транзисторов. Неиспользование части из них очевидно на скорость не влияет.

واحد
понял

Но есть эффект второго уровня. Скорость чтения из памяти данных может сильно зависеть от их положения в памяти. Неудачное расположение может замедлить доступ к данным. (Хотя и может сэкономить объем используемой памяти.) Поэтому общее правило - разрядность процессора надо использовать по-максимуму.

Alexander Morozov
Но есть эффект второго уровня. Скорость чтения из ...

до 32х разрядности высказывание истинно. а вот при 64х разрядности - нет. 64разрядные инструкции (те что с рекс префиксом) медленнее их 32битных аналогов на 25%, а также энергозатратнее (до 400%). А если говорить про энергозатратность - алгорит реализованный через симд будет быстрее, но процессор в это время будет нагреваться до пиковых нагрузок (если алгоритм достаточно длинный), а вот без симд перегреть современный процессор достаточно трудоемко.

ProMiNick
до 32х разрядности высказывание истинно. а вот при...

это получается для систем со слабым 64битным процом эффективнее использовать 32битную операционную систему?

Mixail Frolov
это получается для систем со слабым 64битным процо...

на слабых 64 бит ПК - 32 битные ОС будут работать быстрее, но цена - отказ от 64 бит приложений....

ProMiNick
на слабых 64 бит ПК - 32 битные ОС будут работать ...

Если мы про проц говорим - спорно. Нагрузка на память больше, но и регистров больше.

s54820
Если мы про проц говорим - спорно. Нагрузка на пам...

регистры доступные без рекс префикса обрабатываются на 25% быстрее.

ProMiNick
регистры доступные без рекс префикса обрабатываютс...

И это про какой-то конкретный процессор или... откуда это взялось?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта