ID:2084104
 
Resolved
After removing multiple verbs from a client, statpanel updates and some other situations like right clicks saw a noticeable slowdown. Now this slowdown will only happen once, marking the missing verbs as inaccessible until something else appears that uses them.
BYOND Version:509
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 50.0.2661.94
Applies to:Dream Seeker
Status: Resolved (511.1348)

This issue has been resolved.
Descriptive Problem Summary:
After losing verbs, the client will start to lag and stutter because it still has those verbs, only they have no src, causing the client to check these disabled verbs against all objects in view every tick

Numbered Steps to Reproduce Problem:
1. Move around to benchmark performance on a control.
2. Click "gimmie client verbs" to add 30 verbs to your client
3. Move around to benchmark performance on a control.
4. Click "they took r verbs" to remove them.
5. Move around and note any change of performance
6. Click "gimmie client verbs" to re-add the verbs
7. Move around and note any change of performance
8. Click "they took r verbs" to remove them.
9. Move around and note any change of performance
10. Reconnect
11. Move around and note any change of performance
Code Snippet (if applicable) to Reproduce Problem:
https://tgstation13.org/msoshit/verb%20check.zip

Expected Results:
slight reduction of performance at step 3 and 7, regain of performance at step 5 and 9 followed by no chance at step 11.
Actual Results:
slight reduction of performance at step 3, major reduction of performance at step 5 and 9, regain of performance at step 7 and 11

Does the problem occur:
Every time
In other games
In other user accounts
On other computers

When does the problem NOT occur?
when the client has no verb changes.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Tested down to 509.1314 before i ran into other issues.
Seemingly gets worst in 510, but that could be confirmation bias

Workarounds:
call winset(client,"command=.reconnect") when adding/removing lots of verbs.

Other notes:
Related comment: http://www.byond.com/ forum/?post=2057211&page=2#comment19146916 (lummox explains why this is the case)
Related bug report: ID:1326139 (right click being slower when verbs are removed)
Oh wow, I wonder how many games have suffered from this for all these years without knowing why. It makes me wonder how many instances of 'my game runs like crap after a few days up' were actually 'my game runs like crap after a few days of people gaining and losing client verbs'.
I wonder if this is related to the right click latency issue? Nah, probably not but a good thing to keep in mind if you're poking around verb code.
Oh wow, I wonder how many games have suffered from this for all these years without knowing why.

If it wasn't this, it was another. But yeah, real good find MSO.
Bumping.

I've started to play more and as a player it's really noticeable when things happen to change verb visibility.

This might require a network change to add a forget verb command so i'd like to see if so, if the precursor changes required could make it into 511's first release.

Knowing the importance of this issue, I'm working on it for the first 511 release. It could go in at any time I believe, but this seemed like good timing to do it. The early implementation is done, so I just have to test it now.
Lummox JR resolved issue with message:
After removing multiple verbs from a client, statpanel updates and some other situations like right clicks saw a noticeable slowdown. Now this slowdown will only happen once, marking the missing verbs as inaccessible until something else appears that uses them.