`invariant code move` все-таки в таких случаях лучше делать самому. У тебя `height ()` вызовется примерно 600 раз в худшем случае на простейший цикл. Сохрани перед началом исполнения цикла вроде
```
const auto h = height ();
```