Performance
Essential topics related to performance.
Non-Parallel Callbacks
With modern mobile CPU having more than one core, putting heavy duty code in parallel callbacks will allow them to be executed at the same time by multiple CPU cores, greatly improving performance.
For example, reduce code updateSequential
in callbacks to only that needs to write to global blocks (such as Level Memory), and rest of the code (such as rendering) should be done in updateParallel
callback for best performance.
Node Count
Sonolus has a sizable overhead when executing a node, even for a value note. It is recommended to reduce node count to improve performance, by more efficient code or leveraging optimization system.
For example (ignoring optimization system), Get(1, Add(2, Multiply(3, 4)))
executes 7 nodes, while GetShifted(1, 2, 3, 4)
executes only 5 nodes and thus is preferred.