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
parent
1f402fdf5e
commit
c87751a822
|
@ -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
|
||||
|
|
|
@ -48,6 +48,11 @@ namespace OpenSim.Tests.Common.Mock
|
|||
{
|
||||
}
|
||||
|
||||
~TestScene()
|
||||
{
|
||||
Console.WriteLine("TestScene destructor called for {0}", RegionInfo.RegionName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Temporarily override session authentication for tests (namely teleport).
|
||||
/// </summary>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue