Difference between revisions of "Resource Impact Calculator"
Jump to navigation
Jump to search
Line 5: | Line 5: | ||
<lsl> | <lsl> | ||
/* | /* | ||
Sim resource impact calculator | Sim resource impact calculator | ||
Call impactCPU(uuid) or/and impactRAM(uuid) to get the percentage of allowed resources the avatar is using. | Call impactCPU(uuid) or/and impactRAM(uuid) to get the percentage of allowed resources the avatar is using. | ||
Data returned is integer type [0-100]. | Data returned is integer type [0-100]. | ||
Line 11: | Line 11: | ||
integer maxRAM=200000000; // 200MB server RAM is usually what simulators use for scripting | integer maxRAM=200000000; // 200MB server RAM is usually what simulators use for scripting | ||
float maxload=0.040;// Maximum allowed latency in miliseconds due scripting load on the simulator, 40-80ms is normal. | float maxload=0.040;// Maximum allowed latency in miliseconds due scripting load on the simulator, 40-80ms is normal. | ||
integer impactCPU(key id){ | integer impactCPU(key id){ | ||
return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_TIME]), 0)/(maxload | return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_TIME]), 0)/(maxload/llGetRegionAgentCount())*100); | ||
} | } | ||
integer impactRAM(key id){ | integer impactRAM(key id){ | ||
return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_MEMORY]), 0)/(maxRAM | return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_MEMORY]), 0)/(maxRAM/llGetRegionAgentCount())*100); | ||
} | } | ||
Line 23: | Line 22: | ||
default | default | ||
{ | { | ||
touch_start(integer num_detected) { | touch_start(integer num_detected) { | ||
key id=llDetectedKey(0); | key id=llDetectedKey(0); | ||
Line 29: | Line 28: | ||
llInstantMessage(id,"RAM usage: "+(string)(impactRAM(id))+"%");//example of informational message | llInstantMessage(id,"RAM usage: "+(string)(impactRAM(id))+"%");//example of informational message | ||
if(impactRAM(id)>100)llInstantMessage(id,"You've hit the memory usage limit."); //example of warning message | if(impactRAM(id)>100)llInstantMessage(id,"You've hit the memory usage limit."); //example of warning message | ||
if(impactCPU(id)>100)llInstantMessage(id,"You've hit the CPU usage limit."); | |||
} | } |
Revision as of 14:50, 20 August 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Resource Impact Calculator caused by Avatars
Use to control the lag caused by avatars, maximizing sim's performance.
<lsl> /*
Sim resource impact calculator Call impactCPU(uuid) or/and impactRAM(uuid) to get the percentage of allowed resources the avatar is using. Data returned is integer type [0-100].
- /
integer maxRAM=200000000; // 200MB server RAM is usually what simulators use for scripting float maxload=0.040;// Maximum allowed latency in miliseconds due scripting load on the simulator, 40-80ms is normal.
integer impactCPU(key id){ return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_TIME]), 0)/(maxload/llGetRegionAgentCount())*100); } integer impactRAM(key id){ return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_MEMORY]), 0)/(maxRAM/llGetRegionAgentCount())*100); }
default
{
touch_start(integer num_detected) { key id=llDetectedKey(0); llInstantMessage(id,"CPU usage: "+(string)(impactCPU(id))+"%"); llInstantMessage(id,"RAM usage: "+(string)(impactRAM(id))+"%");//example of informational message if(impactRAM(id)>100)llInstantMessage(id,"You've hit the memory usage limit."); //example of warning message if(impactCPU(id)>100)llInstantMessage(id,"You've hit the CPU usage limit."); }
} </lsl>