Ты тут ещё и аж целый регистр используешь
в регистрах операции выполняются быстрее, чем с памятью, разве нет
но в первом варианте ты дважды обращаешься к памяти, во втором -1
А инструкции он откуда возьмёт? Не из памяти?
но в целом лучше считать в регитрах, просто сейчас операция одна, а может быть 100
Зависит от того, под какой процессор. Ну или хотя бы ровняться на современные, или нет. Но примерно будет одинаково. Тут ещё стоит вообще учитывать ложные зависимости, выравнивание данных и задержку по кэшу данных 3(1/2)+1(1/3)+3(1/2)=7 7(2.5)=7
в оперативной памяти хранится вся программа (допустим), а в регистрах инструкцию читает и что-то с ней делает процессор
регистр как буфер инструкции
регистр как буфер данных
Ну так с целым регистром и быстрее будет))
вот и я про это, на работу с памятью тоже тактовые частоты используются, а для обслуживания операций с помощью регистров тактов тратится на порядок меньше, так ведь?
Так. Это называется задержка по кэшу. И если данные не нашлись с первого раза, задержка растёт больше и больше, по кэшу L1, L2, L3, промахи растут и растут
ладно не бей
Короче, факторов много. Какая у вас в момент исполнения частота RAM, частота CPU... И ещё куча всякого. Да даже предсказание переходов вносит свою лепту небольшую. Но, лично мне кажется, второй вариант предпочтительнее
Обсуждают сегодня