Were you using 91.0 with Linux and OMP? I have reports from Linux players that 91.0 is unusable for them. Anarchid did some digging around and found a way to disable OMP which fixed the performance.
There is very little documentation on how to optimize the interface between lua and Spring (as opposed to information on how to optimize pure lua code, that exists elsewhere). Any optimization we've done has been through experimentation so in a sense ZK is optimized for 91.0. What is fast and what is slow has been mostly unchanged for many years. A massive change would be needed to explain the performance difference. If there is was a massive intentional change to how games need to optimize their lua then it is important that you announce it. Game devs have almost no way of discovering this by themselves. If there was an unintentional massive change then it is simply a bug.
In fact there has been a significant change to some optimization within gadgets. Access to SYNCED and SendToUnsynced is apparently much slower. I have already been informed of this by jK and I updated the gadgets accordingly. There was also a minor Spring.GetUnitsCommand change which has also been taken into account.
I have bad data which says that the lua of ZK takes less total time with the dev engine than it does in 91.0. This is bad data because it consists of looking at the debug view and various lua profilers. Current lua-side widget or gadget profilers have a significant performance impact so I am unable to gather better data.
How would I point out which parts are slower? Give me a detailed method for doing so and I will do that. As I said, both gameframe and update are slower. I know no way of getting good data on finer structures.
I think an effective testing method would use an engine branch with drastic changes to candidates for poor performance. Replace bits of the engine with placeholders. If that is too hard take large segments of the engine and have them run 10x more than usual. Repeat for many segments to try to find one which has an unreasonable effect.
Jools wrote:They have 91 as baseline, would be interesting to see similar comparisons with 96 as baseline.
I recall 96.0 being even worse than dev engine. I have no good data for that though.There are compatibility issues with ZK on 96.0 so it would take effort to set up a test.