Set Rate
Процессор работает на своей скорости всегда. setrate — единственный способ её изменить, и меняют её почти всегда вниз
У каждого процессора своя скорость — сколько инструкций он успевает за тик. Она лежит
в @ipt и написана в характеристиках блока:
| Блок | Инструкций за тик |
|---|---|
| Микропроцессор | 2 |
| Логический процессор | 8 |
| Гиперпроцессор | 25 |
| Мировой процессор | 8, до 1000 |
Гиперпроцессор на полном ходу: за секунду программа из пяти строк проходит её около
295 раз. Столько же раз за секунду читается sensor, перерисовывается дисплей
и пересчитывается всё, что в ней написано.
setrate меняет скорость на ходу
Заголовок раздела «setrate меняет скорость на ходу»Та же программа с одной новой строкой в начале:
setrate 1Теперь @ipt равен единице, и за ту же секунду программа проходит 14 итераций вместо
295. Она делает ровно то же самое, только в двадцать раз реже.
Выше своего потолка не поднять
Заголовок раздела «Выше своего потолка не поднять»Здесь микропроцессору велено работать на тысяче инструкций за тик, а скорость всё равно
остаётся двойкой.
Число в setrate прижимается к отрезку от единицы до предела этого блока, и предел
у обычного процессора — его собственная скорость. Разогнать микропроцессор до гиперпроцессора
нельзя; можно только замедлить.
Зачем это вообще нужно
Заголовок раздела «Зачем это вообще нужно»Честный ответ: ради мирового процессора. Восьми инструкций за тик мало на сценарий,
который перебирает юнитов, считает волны и разговаривает с игроком, — и setrate 1000
даёт ему в сто с лишним раз больше.
Обычным процессорам инструкция досталась заодно: до версии 160 она была привилегированной и им не давалась вовсе. Применения у замедления при этом почти нет — игра спокойно тянет сотни процессоров, и ускорять ею карту не выйдет: выше своей скорости обычный процессор не поднимется, а ниже опускать его незачем.
Единственное, где это иногда полезно, — разглядеть работу программы: на setrate 1
видно, как счётчик идёт по строкам. В игре на это смотрят редко, а вот в примерах этого
курса пошаговая кнопка делает ровно то же самое.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.