Перейти к содержимому

Сколько стоит инструкция

У процессора нет «дорогих» и «дешёвых» строк: он считает их штуками, и штук за тик ровно @ipt

тик 0
Операция0
=
Установить1
=
Операция2
=
@counter0number
итерацийnullnull
скоростьnullnull
итерацийЗаТикnullnull

Гиперпроцессор, программа из трёх строк. Смотрите на итерацийЗаТик: около 8.3 — это двадцать пять инструкций за тик, поделённые на три строки итерации.

Отсюда и вся арифметика скорости:

Что Формула
инструкций за тик @ipt: 2, 8 или 25
итераций за тик @ipt ÷ длину программы
итераций за секунду это же, умноженное на 60

op add и radar enemy any any distance duo1 1 цель — одна инструкция каждая. Процессор не считает, сколько работы за строкой; он считает строки.

Это не значит, что цена совсем одинакова: radar внутри обходит юнитов, и на большой карте он обходится игре дороже, чем сложение. Но на скорость вашей программы это не влияет никак — в тик всё равно пройдёт ровно @ipt строк.

Что Стоит ли
комментарий в блочном редакторе нет: это не инструкция
метка нет: она не попадает в программу
end в конце программы нет: конец и так обрабатывается
пустая строка, noop одну инструкцию
несработавший jump одну инструкцию

Последнее важнее, чем кажется: проверки, которые почти всегда ложны, стоят столько же, сколько сработавшие. Программа из двадцати проверок «а не случилось ли» тратит на них двадцать инструкций каждую итерацию — и если одна из них дорога по смыслу, её лучше проверять раз в секунду по сроку, а не каждый раз.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.