Difference between revisions of "Resource Impact Calculator"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
{{LSL Header}}
{{LSL Header}}
====Resource Impact Calculator caused by Avatar====
====Resource Impact Calculator caused by Avatars====
Use to control the lag caused by avatars, maximizing sim's performance.
Use to control the lag caused by avatars, maximizing sim's performance.



Revision as of 14:33, 20 August 2012

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 maxavi=100;// Avatars the simulator can host.

integer impactCPU(key id){ return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_TIME]), 0)/(maxload/maxavi*maxavi/llGetRegionAgentCount())*100); } integer impactRAM(key id){ return (integer)(llList2Float(llGetObjectDetails(id, [OBJECT_SCRIPT_MEMORY]), 0)/(maxRAM/maxavi*maxavi/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>