
|
If you were logged in you would be able to see more operations.
|
|
|
| Linden Lab Issue ID: |
DEV-18976
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
Here are some preview grid sample times:
Abotts (non-Mono empty): 0.001760
Fortuna (Havok 1, empty): 0.002444
Fame (Havok 1, slow simulator): 0.002451
Ahern (slow simulator): 0.004138
Sandbox Wanderton (Mono, empty): 0.023679
Sandbox Coguen (Mono, non-empty): 0.023686
Sandbox Cordova (Mono, empty): 0.023744
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state state1;
}
}
|
|
Description
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
Here are some preview grid sample times:
Abotts (non-Mono empty): 0.001760
Fortuna (Havok 1, empty): 0.002444
Fame (Havok 1, slow simulator): 0.002451
Ahern (slow simulator): 0.004138
Sandbox Wanderton (Mono, empty): 0.023679
Sandbox Coguen (Mono, non-empty): 0.023686
Sandbox Cordova (Mono, empty): 0.023744
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state state1;
}
} |
Show » |
made changes - 05/Aug/08 07:26 AM
| Field |
Original Value |
New Value |
|
Description
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
}
}
}
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state1;
}
}
|
made changes - 05/Aug/08 07:27 AM
|
Description
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state1;
}
}
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state state1;
}
}
|
made changes - 05/Aug/08 07:35 AM
|
Summary
|
State changes are hundreds of times slower on MONO servers
|
State changes are several times slower on MONO servers
|
|
Description
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state state1;
}
}
|
I've recently tested a script-performance benchmarking tool I made on the Mono grid, and have found that while performance of many operations are MUCH faster when compared to LSL2, that there is a major weakness in the Mono server.
Below is a simple script that shows the portion of my benchmarking tool used to test state-transitions. On a typical class 5 mainland sim on the main (non-preview) grid, state-changes are executed at approximately 0.0002 seconds per transition. The transitions perform even faster on empty, non-MONO simulators on the preview-grid as well.
However, in MONO regions on the preview grid, state-changes are taking closer to 0.02 seconds to complete, which is around 100 times slower or worse!
Simply throw the following script into an object on a MONO enabled region, and a non-MONO enabled region for comparison. For the sake of argument run both as LSL2 scripts. There is no noticeable difference in speed between running the following script as LSL2 or Mono, both are equally slow on a MONO region.
Here are some preview grid sample times:
Abotts (non-Mono empty): 0.001760
Fortuna (Havok 1, empty): 0.002444
Fame (Havok 1, slow simulator): 0.002451
Ahern (slow simulator): 0.004138
Sandbox Wanderton (Mono, empty): 0.023679
Sandbox Coguen (Mono, non-empty): 0.023686
Sandbox Cordova (Mono, empty): 0.023744
-------------------------------------------------------------
integer counter = 0;
default {
state_entry() {
llResetTime();
state state1;
}
}
state state1 {
state_entry() {
state state2;
}
}
state state2 {
state_entry() {
if ((++counter) >= 100) {
float time = llGetTime() / 200.0;
llOwnerSay((string)time + " seconds/state-change");
} else state state1;
}
}
|
made changes - 05/Aug/08 09:26 AM
|
Link
|
|
This issue Relates to SVC-1276
[ SVC-1276
]
|
made changes - 05/Aug/08 10:26 AM
|
Link
|
|
This issue is related to by SVC-1276
[ SVC-1276
]
|
made changes - 06/Aug/08 05:27 PM
|
Linden Lab Issue ID
|
|
DEV-18976
|
made changes - 08/Aug/08 08:54 AM
|
Link
|
This issue is related to by SVC-1276
[ SVC-1276
]
|
|
made changes - 29/Aug/08 06:49 AM
|
Assignee
|
|
Babbage Linden
[ Babbage Linden
]
|
made changes - 29/Aug/08 06:49 AM
|
Status
|
Open
[ 1
]
|
Fix Pending
[ 10001
]
|
made changes - 31/Aug/08 12:26 PM
|
Link
|
|
This issue is related to by SVC-2958
[ SVC-2958
]
|
made changes - 02/Sep/08 10:35 AM
|
Link
|
|
This issue is related to by SVC-1276
[ SVC-1276
]
|
made changes - 02/Sep/08 10:38 AM
|
Link
|
This issue Relates to SVC-1276
[ SVC-1276
]
|
|
made changes - 14/Oct/08 09:39 AM
|
Status
|
Fix Pending
[ 10001
]
|
Resolved
[ 5
]
|
|
Resolution
|
|
Fixed
[ 1
]
|
made changes - 13/Nov/08 12:10 PM
|
Workflow
|
jira-2007-12-22a
[ 57994
]
|
jira-2008-11-14
[ 82568
]
|
made changes - 13/Nov/08 04:46 PM
|
Workflow
|
jira-2008-11-14
[ 82568
]
|
jira-2008-11-14a
[ 92057
]
|
made changes - 18/Jan/09 09:57 AM
|
Link
|
|
This issue is related to by SVC-3691
[ SVC-3691
]
|
made changes - 22/Jan/09 10:41 PM
|
Link
|
|
This issue is related to by SVC-3707
[ SVC-3707
]
|
|
You are at 255740.8, 255335.9, 21.0 in Sandbox Goguen MONO located at sim3017.aditi.lindenlab.com (216.82.2.23:13002)
Second Life Beta Server 1.24.4.93464
=======
Look at the comparison between LSL and Mono:
[9:01]
SVC-2746LSL: 0.022235 seconds/state-change[9:01]
SVC-2746Mono: 0.022235 seconds/state-change[9:01]
SVC-2746LSL: 0.022238 seconds/state-change[9:01]
SVC-2746Mono: 0.022233 seconds/state-change[9:01]
SVC-2746LSL: 0.022860 seconds/state-change[9:01]
SVC-2746Mono: 0.022233 seconds/state-change[9:01]
SVC-2746LSL: 0.022240 seconds/state-change[9:01]
SVC-2746Mono: 0.022236 seconds/state-change[9:01]
SVC-2746LSL: 0.022234 seconds/state-change[9:02]
SVC-2746Mono: 0.022238 seconds/state-change[9:02]
SVC-2746LSL: 0.022237 seconds/state-change[9:02]
SVC-2746Mono: 0.022237 seconds/state-changeThe results are identical and very constant.
========
There seems to be a built-in delay, look at the results from this script:
default
{ llResetTime(); state state1; }{
state_entry()
}
{ llOwnerSay((string)llGetTime() + " seconds/single-state-change"); }state state1
{
state_entry()
}
[9:37]
SVC-2746Mono: 0.021857 seconds/single-state-change[9:37]
SVC-2746Mono: 0.022306 seconds/single-state-change[9:37]
SVC-2746Mono: 0.021260 seconds/single-state-change[9:37]
SVC-2746Mono: 0.021777 seconds/single-state-change[9:37]
SVC-2746Mono: 0.021554 seconds/single-state-change[9:37]
SVC-2746Mono: 0.021870 seconds/single-state-change[9:37]
SVC-2746Mono: 0.021511 seconds/single-state-change[9:37]
SVC-2746Mono: 0.021274 seconds/single-state-changeAgain we see very constant results.