User:Daemonika Nightfire/Scripts/Memory Walkthrough

From Second Life Wiki
Jump to navigation Jump to search

Memory Walkthrough

This Script show you how you can limit the maximal memory for each mono-script.

sorry for the german description, but i am german :P

<lsl> /*

   Memory-walkthrough by Daemonika Nightfire (daemonika.nightfire)
   Used commands:
   
   integer llSetMemoryLimit(integer limit)     // legt das maximale Memorylimit fuer das Script fest
   integer llGetMemoryLimit()                  // gibt den Wert des Memorylimits zurueck
   integer llGetUsedMemory()                   // gibt den Wert des gesamten Memory-verbrauchst zurueck
   integer llGetFreeMemory()                   // gibt den Wert des freien Memorys zurueck
   
   llScriptProfiler(PROFILE_SCRIPT_MEMORY);    // startet Memory-ueberwachung
   llScriptProfiler(PROFILE_NONE);             // beendet Memory-ueberwachung
   integer llGetSPMaxMemory()                  // gibt den maximalen Memory-verbrauch des ScriptProfilers zurueck
  • /

integer limit = 20000; // dient zum festlegen des maximalen Script-Memory-Limits

Test() // meine Funktion {

   // einfache Hovertext-Anzeige
   llSetText("Limited Memory " + (string)llGetMemoryLimit() +
             "\nUsed Memory " + (string)llGetUsedMemory() +
             "\nFree Memory " + (string)llGetFreeMemory(),<1,1,1>,1);

}

default {

   state_entry()
   {
       llSetMemoryLimit(limit);
       
       ///// Memory Profiler: testet den Speicherverbrauch saemtlicher Funktionen unterhalb dieses Befehls
       llScriptProfiler(PROFILE_SCRIPT_MEMORY); // startet Memory-ueberwachung
       
       Test(); // meine Funktion
       
       ///// Memory Profiler: beendet die ueberwachung des Speicherverbrauchs saemtlicher Funktionen oberhalb dieses Befehls
       llScriptProfiler(PROFILE_NONE); // beendet Memory-ueberwachung
       
       ///// gibt den maximalen Memory-verbrauch der getesteten Funktionen zurueck
       llSay(0,"This script used at most " + (string)llGetSPMaxMemory() + " bytes of memory during Test.");
       
       // Ausgabe sieht Folgendermassen aus:
       
       // Hovertext:
       // Limited Memory 20000
       // Used Memory 4972
       // Free Memory 15100
       
       // Chat:
       // [05:11] Object: This script used at most 4972 bytes of memory during Test.
   }

} </lsl>