As you know we've been suffering from what we refer to as 'lag' since the introduction of the 5.6.005 revision. With the introduction of the anniversary revisions on top of that, it's increased the scope of where this issue actually lies, making our job a little harder and more time-consuming. The team and I have now devised a strategy towards how we can solve this problem whilst keeping disturbance to the community to a minimum.
Yesterday (02/07/2017) I introduced the ability to toggle features allowing us at run-time to disable an entire feature for example Poker. I added coverage to all features added in the anniversary revision along with some coverage of the updates which were introduced from 5.6.005 up to the point of the final anniversary update. With this change in I was unfortunately not able to spot any significant improvement when disabling the changes.
We've also personally reviewed and analysed the code which was introduced and whilst we've noticed some subtle improvements which we've applied, nothing major was found. In order to identify the offending code, we are now going to have to go back in time by rolling back to 5.6.005 and re-apply each addition so that we can identify which one introduces the problem.
This scenario is very interesting to test as it only appears when we hit around ~350 players, I'm also finding it hard to reproduce this scenario synthetically in my test environment as the trigger could be from a variety of sources: a player command, a callback or a timer all being contained in a variety of features.
I said at the start of this post that we're trying not to cause much of a disturbance to the community so whilst running this investigation we will be offering all players the following benefits of being in-game during this period:
I know losing functionality for a temporary period of time may be frustrating, however; we need to conduct this investigation to eliminate this issue which is affecting the server at scale. We also thank those of you which are contributing to solving this issue by suggesting towards what may be causing the problem, however, we ask you to continue playing as normal and hold off with the suggestions as we have several tools in place to give us direct metrics from the SA-MP server's runtime, one of those being a profiler which is giving us low-level metrics of execution times of the code.
This change will come into effect on 04/07/2017.
On behalf of the development team,
Noble