From e70cdbc5accc5025ed4e6262ff01ce50bf553141 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sun, 19 Aug 2007 10:28:27 +0000 Subject: Added event method invoke cache to Executor. "Bind once, Invoke multiple times". Will speed up script event execution considerable. But at the cost of some memory (will be optimized later with RuntimeXHandle). --- OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs') diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 9a65b5c..4879fb2 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -34,6 +34,7 @@ using System.Reflection; using System.Runtime.Remoting; using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Scenes.Scripting; +using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL; using OpenSim.Region.ScriptEngine.Common; @@ -176,7 +177,16 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine //OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO.LSL_BaseClass Script = LoadAndInitAssembly(FreeAppDomain, FileName); //OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = LoadAndInitAssembly(FreeAppDomain, FileName, ObjectID); - OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = m_scriptEngine.myAppDomainManager.LoadScript(FileName, ObjectID); + long before; + before = GC.GetTotalMemory(true); + LSL_BaseClass Script = m_scriptEngine.myAppDomainManager.LoadScript(FileName); + Console.WriteLine("Script occupies {0} bytes", GC.GetTotalMemory(true) - before); + before = GC.GetTotalMemory(true); + Script = m_scriptEngine.myAppDomainManager.LoadScript(FileName); + Console.WriteLine("Script occupies {0} bytes", GC.GetTotalMemory(true) - before); + before = GC.GetTotalMemory(true); + Script = m_scriptEngine.myAppDomainManager.LoadScript(FileName); + Console.WriteLine("Script occupies {0} bytes", GC.GetTotalMemory(true) - before); // Add it to our temporary active script keeper @@ -184,7 +194,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine SetScript(ObjectID, ScriptID, Script); // We need to give (untrusted) assembly a private instance of BuiltIns // this private copy will contain Read-Only FullScriptID so that it can bring that on to the server whenever needed. - OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands LSLB = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands(this, ObjectID); + LSL_BuiltIn_Commands LSLB = new LSL_BuiltIn_Commands(this, ObjectID); // Start the script - giving it BuiltIns Script.Start(LSLB); -- cgit v1.1