LlSetMemoryLimit: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
m Corrected erroneous statement concerning Memory size reporting in the viewer and with llGetObjectDetails. |
||
| Line 15: | Line 15: | ||
* All new scripts start with a limit of 64k | * All new scripts start with a limit of 64k | ||
* All existing scripts have a limit of 64k | * All existing scripts have a limit of 64k | ||
* A lower limit will effect the amount of memory reported in the viewer UI and by [[llGetObjectDetails]]. | * A lower limit will '''not''' effect the amount of memory reported in the viewer UI and by [[llGetObjectDetails]]. | ||
* The memory limit is not the amount of real memory actually used by the script, just the upper limit on it. | * The memory limit is not the amount of real memory actually used by the script, just the upper limit on it. | ||
Revision as of 19:55, 30 January 2014
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Specification
This function's behavior is dependent upon the VM the script is using. Mono is the new VM, LSO is the old VM.
- Mono
- Sets the memory limit for the script.
- The memory limit can be set up to 64k.
- The memory limit can not be set lower than the memory currently in use by the script.
- All new scripts start with a limit of 64k
- All existing scripts have a limit of 64k
- A lower limit will not effect the amount of memory reported in the viewer UI and by llGetObjectDetails.
- The memory limit is not the amount of real memory actually used by the script, just the upper limit on it.
- LSO
- Has no effect on LSO scripts which will always use exactly 16k
Caveats
- Mono
- When n is too small, llSetMemoryLimit(n) is ignored and the memory limit is not changed
Examples
<lsl> // Memory-walkthrough by Daemonika Nightfire (daemonika.nightfire)
integer limit = 20000; // <- bytes
Test() {
llSetText("Limited Memory " + (string)llGetMemoryLimit() +
"\nUsed Memory " + (string)llGetUsedMemory() +
"\nFree Memory " + (string)llGetFreeMemory(),<1,1,1>,1);
}
default {
state_entry()
{
llSetMemoryLimit(limit);
llScriptProfiler(PROFILE_SCRIPT_MEMORY);
Test();
llScriptProfiler(PROFILE_NONE);
llSay(0,"This script used at most " + (string)llGetSPMaxMemory() + " bytes of memory during Test.");
}
}
// Result:
// Floating Text: // 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>See Also
Functions
| • | llScriptProfiler | |||
| • | llGetSPMaxMemory | |||
| • | llGetMemoryLimit | |||
| • | llGetFreeMemory | |||
| • | llGetUsedMemory | |||
| • | llGetObjectDetails |