from pyfbsdk import *
import os
gApp = FBApplication()
gSys = FBSystem()
gTestFilePath = os.path.abspath( os.path.join( gSys.ApplicationPath, "../../OpenRealitySDK/Scenes/PlasticMan.fbx" ))
gBatchCount = 5
gEnableDetailTrace = False
gNewTraceLevel = 9
gOriTraceLevel = FBTraceGetLevel()
print "==========================================================================="
print "== Memory Leak Detection for Batch Processing"
print "=="
print "== If you observed steady memory usage increase, it may indicate that there"
print "== is memory leak somewhere, either inside your SDK plugin or MoBu kernel."
print "=="
print "== Test File: ", gTestFilePath
print "== Batch iterations: ", gBatchCount
print "== Enable Detail Trace: ", gEnableDetailTrace
print "== Trace Level: ", gNewTraceLevel
print "==========================================================================="
gGlobalUniqueId = FBObjectGetGlobalUniqueId()
gObjectLivingCount = FBObjectGetLivingCount()
FBObjectLifeLogEnable(gEnableDetailTrace)
FBTraceSetLevel(gNewTraceLevel)
def TraceMemory(pIter):
lTraceMsg = "Iteration: " + str(pIter) + " Livings Count: " + str(gObjectLivingCount) + " Memory: " + str(gSys.ProcessMemory) +"\n"
FBTraceWithLevel(gNewTraceLevel, lTraceMsg)
for lIter in range (gBatchCount):
TraceMemory(lIter);
gApp.FileOpen(gTestFilePath)
gSys.Scene.Evaluate()
gApp.FileNew()
'''
FBObjectPrintLivings(gGlobalUniqueId)
'''
gGlobalUniqueId = FBObjectGetGlobalUniqueId()
gObjectLivingCount = FBObjectGetLivingCount()
TraceMemory(gBatchCount)
FBObjectLifeLogEnable(False)
FBTraceSetLevel(gOriTraceLevel)