Add start GC memory and end GC memory to object stress test printouts.

This illustrates that references to Scene, SOG, etc. are not currently being released when a stress test ends (or at regression test end in general).
This means even the current stress tests take much more memory than they need, a problem that will have to be addressed.
iar_mods
Justin Clark-Casey (justincc) 2012-02-07 23:03:53 +00:00
parent 1f402fdf5e
commit c87751a822
4 changed files with 22 additions and 4 deletions

View File

@ -567,7 +567,8 @@ namespace OpenSim.Region.Framework.Scenes
// ~SceneObjectGroup()
// {
// m_log.DebugFormat("[SCENE OBJECT GROUP]: Destructor called for {0}, local id {1}", Name, LocalId);
// //m_log.DebugFormat("[SCENE OBJECT GROUP]: Destructor called for {0}, local id {1}", Name, LocalId);
// Console.WriteLine("Destructor called for {0}, local id {1}", Name, LocalId);
// }
#region Constructors

View File

@ -47,6 +47,11 @@ namespace OpenSim.Tests.Common.Mock
dumpAssetsToFile, config, simulatorVersion)
{
}
~TestScene()
{
Console.WriteLine("TestScene destructor called for {0}", RegionInfo.RegionName);
}
/// <summary>
/// Temporarily override session authentication for tests (namely teleport).

View File

@ -131,7 +131,7 @@ namespace OpenSim.Tests.Torture
TimeSpan elapsed = DateTime.Now - start;
// long processMemoryAlloc = process.PrivateMemorySize64 - startProcessMemory;
long processGcAlloc = GC.GetTotalMemory(false) - startGcMemory;
long endGcMemory = GC.GetTotalMemory(false);
for (int i = 1; i <= objectsToAdd; i++)
{
@ -141,9 +141,19 @@ namespace OpenSim.Tests.Torture
string.Format("Object {0} could not be retrieved", i));
}
// This does not work to fire the SceneObjectGroup destructors - something else is hanging on to them.
// scene.DeleteAllSceneObjects();
Console.WriteLine(
"Took {0}ms, {1}MB to create {2} objects each containing {3} prim(s)",
Math.Round(elapsed.TotalMilliseconds), processGcAlloc / 1024 / 1024, objectsToAdd, primsInEachObject);
"Took {0}ms, {1}MB ({2} - {3}) to create {4} objects each containing {5} prim(s)",
Math.Round(elapsed.TotalMilliseconds),
(endGcMemory - startGcMemory) / 1024 / 1024,
endGcMemory / 1024 / 1024,
startGcMemory / 1024 / 1024,
objectsToAdd,
primsInEachObject);
scene = null;
}
}
}

View File

@ -107,6 +107,8 @@ namespace OpenSim.Tests.Torture
m_expectedChatMessages = scriptsToCreate;
int startingObjectIdTail = 0x100;
GC.Collect();
for (int idTail = startingObjectIdTail;idTail < startingObjectIdTail + scriptsToCreate; idTail++)
{
AddObjectAndScript(idTail, userId);