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

Set Rate

Процессор работает на своей скорости всегда. setrate — единственный способ её изменить, и меняют её почти всегда вниз

У каждого процессора своя скорость — сколько инструкций он успевает за тик. Она лежит в @ipt и написана в характеристиках блока:

Блок Инструкций за тик
Микропроцессор 2
Логический процессор 8
Гиперпроцессор 25
Мировой процессор 8, до 1000
тик 0
Установить0
=
Операция1
=
Печать2
Вывод печати3
Конец4
@counter0number
скоростьnullnull
итерацийnullnull

Гиперпроцессор на полном ходу: за секунду программа из пяти строк проходит её около 295 раз. Столько же раз за секунду читается sensor, перерисовывается дисплей и пересчитывается всё, что в ней написано.

тик 0
Скорость0
ipt =
Установить1
=
Операция2
=
Печать3
Вывод печати4
Конец5
@counter0number
скоростьnullnull
итерацийnullnull

Та же программа с одной новой строкой в начале:

setrate 1

Теперь @ipt равен единице, и за ту же секунду программа проходит 14 итераций вместо 295. Она делает ровно то же самое, только в двадцать раз реже.

тик 0
Скорость0
ipt =
Установить1
=
Стоп2
@counter0number
скоростьnullnull

Здесь микропроцессору велено работать на тысяче инструкций за тик, а скорость всё равно остаётся двойкой.

Число в setrate прижимается к отрезку от единицы до предела этого блока, и предел у обычного процессора — его собственная скорость. Разогнать микропроцессор до гиперпроцессора нельзя; можно только замедлить.

Честный ответ: ради мирового процессора. Восьми инструкций за тик мало на сценарий, который перебирает юнитов, считает волны и разговаривает с игроком, — и setrate 1000 даёт ему в сто с лишним раз больше.

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

Единственное, где это иногда полезно, — разглядеть работу программы: на setrate 1 видно, как счётчик идёт по строкам. В игре на это смотрят редко, а вот в примерах этого курса пошаговая кнопка делает ровно то же самое.

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