OsGetSimulatorMemoryKB

From OpenSimulator

Revision as of 13:07, 15 October 2017 by Djphil (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
integer osGetSimulatorMemoryKB();
Implemented Octobre 15,2017 by UbitUmarov in GIT# 3d6553afeee3d4605851b6f336c17d5a6b07c6ad - Commit 3d6553
Threat Level Moderate
Permissions No permissions specified
Extra Delay No function delay specified
Example(s)
Simple Script (displays only the integer such as 234652064)
// Simple Unformatted Output
// 
integer TotMemUsed;
default
{
 state_entry()
 {
 TotMemUsed = osGetSimulatorMemoryKB();
 llSetText( (string)TotMemUsed+" Memory by the OpenSimulator Instance", <0.0,1.0,0.0>, 1.0 );
 }
 touch(integer num)
 {
 TotMemUsed = osGetSimulatorMemoryKB();
 llSetText( (string)TotMemUsed+" Memory by the OpenSimulator Instance", <0.0,1.0,0.0>, 1.0 );
 }
}

Extended with some formatting: (displays as 234.652 Mb)

// Simple formatted Output
// shows either MB or GB as applicable
//
// ==== GET Memory Integer and Format for Display ====
 
GenStats()
{
 // Get Memory and format it
 string TotalMem;
 string TotMemUsed;
 string TxtTail =" used by OpenSimulator Instance";
 
 TotMemUsed = (string)osGetSimulatorMemoryKB();
 integer Len = llStringLength(TotMemUsed);
 
 if(Len == 8) // ##.### MB
 {
 string Mem1 = llGetSubString(TotMemUsed,0,1);
 string Mem2 = llGetSubString(TotMemUsed,2,4);
 TotalMem = Mem1 + "." + Mem2 + "\nMb"+TxtTail;
 }
 else if(Len == 9) //###.### MB
 {
 string Mem1 = llGetSubString(TotMemUsed,0,2);
 string Mem2 = llGetSubString(TotMemUsed,3,5);
 TotalMem = Mem1 + "." + Mem2 + "\nMb"+TxtTail;
 }
 else if(Len == 10) //#.### GB
 {
 string Mem1 = llGetSubString(TotMemUsed,0,0);
 string Mem2 = llGetSubString(TotMemUsed,1,3);
 TotalMem = Mem1 + "." + Mem2 + "\nGb"+TxtTail;
 }
 else if(Len == 11) //##.### GB
 {
 string Mem1 = llGetSubString(TotMemUsed,0,1);
 string Mem2 = llGetSubString(TotMemUsed,2,4);
 TotalMem = Mem1 + "." + Mem2 + "\nGb"+TxtTail;
 }
 
 llSetText(TotalMem, <0.0,1.0,0.0>, 1.0 );
}
 
default
{
 state_entry() // display @ start
 {
 GenStats();
 }
 
 touch(integer num) // refresh on touch
 {
 GenStats();
 }
}


Informations
This allows work around the fact osGetSimulatorMemory() reports at most 2GB. This one limit is now 2TB, should ne enought for a while

Personal tools
General
About This Wiki