[BUG-40565] Significant script performance degradation observed in server version 16.09.14.319788 #12225
Comments
Fred Allandale commented at 2016-09-23T18:11:26Z, updated at 2016-09-25T00:41:18Z Here is a script that will repro the problem. Follow these steps:
Test Script: default
} Do-nothing script: default
} |
Fred Allandale commented at 2016-09-23T18:21:17Z Here is another repro script. This one reads notecard lines. Put this script in a prim along with a notecard named "Test NC" that has about 100 lines. Then follow the repro steps in my previous comment. The script will chat the execution time for each notecard line read as well as the total read time and average per line time. integer Line; default
} |
Caleb Linden commented at 2016-09-23T20:08:21Z, updated at 2016-09-23T20:08:31Z Thanks for letting us know, we are investigating it momentarily |
Vix Linden commented at 2016-09-24T03:48:58Z The region [Mali Bay] fits the description of this issue. Scripts Run very low, script time nearly at zero considering there are over 6,000 active scripts. My own troubleshooting scripts could not rez. |
Kyle Linden commented at 2016-09-24T04:09:13Z Set 'Needs More Info' to gather more reports. |
Darien Caldwell commented at 2016-09-24T20:05:21Z, updated at 2016-09-24T20:10:48Z I tried this two ways in RC LeTigre 16.09.14.319788. First attempt at Repro: [12:53:34] Object: Starting [n=100000] [12:54:05] Object: Hello, Avatar! [12:55:03] Object: Starting [n=100000] [12:55:31] Object: Hello, Avatar! [Compiled a 4th unique script with do-nothing code] [12:55:52] Object: Starting [n=100000] No Degradation observed. Second attempt at Repro: [12:57:02] Object: Starting [n=100000] [ Dropped in 3 copies of the same 'do-nothing' script asset.] [12:57:41] Object: Starting [n=100000] [ Dropped in 4th copy of the same 'do-nothing' script asset] [12:58:10] Object: Starting [n=100000] So it seems the issue may be a factor of "Mono bytecode sharing". (outlined here under "mono tips": http://wiki.secondlife.com/wiki/Mono#Mono_benefits |
Fred Allandale commented at 2016-09-25T00:47:28Z Darien's observation is correct. The additional scripts must be identical copies to cause the problem to occur. |
Lucia Nightfire commented at 2016-09-25T02:21:31Z The focus seems to be 4 or more of the same script UUID in the same link, whether they be Mono or LSO, running or not. There is also significant delays with function use with loops, jumps, timers or timed functions. |
Kyle Linden commented at 2016-09-26T17:26:17Z Thank you all for the information. We have what we need for a fix. |
Steps to Reproduce
My Online Sender product, which contains a large number of database scripts, is taking an order of magnitude longer to initialize, resulting in a database timeout error. This only started occurring on 9/22/2016 after my region was updated to Second Life RC BlueSteel 16.09.14.319788. I have confirmed the same thing is happening in all other RC channel servers running this version that I have tested in. I have also confirmed that it is NOT happening in any main channels running server version 16.08.31.319299.
Actual Behavior
Several of my products started experiencing significant script slowdowns (roughly 10 times slower) on RC server version 16.09.14.319788, causing various timeouts. This slowdown is NOT observed on main channel server version 16.08.31.319299.
Expected Behavior
I expect the newer version server to execute scripts at approximately the same speed as previous version. Not 10 times slower.
Other information
I have created test objects and scripts to reproduce the problem. One simply executes a simple loop and chats the time it took to execute the loop n times. The other reads a 100 line notecard and chats the time it took to read each line, the total time and the average time per line. The slowdown is clearly evident in both, ranging from 7 to 15 times slower in server version 16.09.14.319788 versus 16.08.31.319299. The problem only occurs only when both of the following are true.
It was noted that the test script runs at normal speed with up to 3 "do nothing" scripts present. When a 4th "do nothing" script is added, the slowdown happens. Adding additional "do nothing" scripts does not result in additional slowing. There appears to be a step change in execution speed when going from 4 to 5 total scripts in the object.
Original Jira Fields
The text was updated successfully, but these errors were encountered: