c# - Microsoft UCMA: Strings Not Being Garbage Collected -


i running memory profiler on ucma application works client adds recorder participants session , notice lot of string instances eating memory (even when participants removed , after time of inactivity notice these strings don't garbage collected):

microsoft.rtc.collaboration!microsoft.rtc.signaling.diagnosticsinformation..ctor( int,diagnosticvisibility ) microsoft.rtc.collaboration!microsoft.rtc.signaling.diagnosticsinformation.createoutgoingdiagnosticsinformation( uint ) microsoft.rtc.collaboration!microsoft.rtc.collaboration.call.signalingsession_statechanged( object,signalingstatechangedeventargs ) microsoft.rtc.collaboration!microsoft.rtc.signaling.eventworkitem<teventargs>.process() microsoft.rtc.collaboration!microsoft.rtc.signaling.workitemqueue.processitems() microsoft.rtc.collaboration!microsoft.rtc.signaling.serializationqueue<t>.resumeprocessing() microsoft.rtc.collaboration!microsoft.rtc.signaling.serializationqueue<t>.resumeprocessingcallback( object ) microsoft.rtc.collaboration!microsoft.rtc.signaling.queueworkitemstate.executewrappedmethod( waitcallback,object ) mscorlib!system.threading.executioncontext.run( executioncontext,contextcallback,object ) mscorlib!system.threading._threadpoolwaitcallback.performwaitcallbackinternal( _threadpoolwaitcallback ) mscorlib!system.threading._threadpoolwaitcallback.performwaitcallback( object ) 

i see 2000 instances , they're not being cleaned up. has seen before , knows cause or if ucma issue in framework itself?

edit: see lot of deserialization on framework (xml deserializer object not being cleaned up?)

system.xml!system.xml.serialization.xmlserializer.deserialize( xmlreader,string,xmldeserializationevents ) system.xml!system.xml.serialization.xmlserializer.deserialize( xmlreader,string ) microsoft.rtc.collaboration!microsoft.rtc.signaling.xmlhelper.deserializeobjectfragment( byte[],xmlserializer ) microsoft.rtc.collaboration!microsoft.rtc.collaboration.conferencing.conferencejoincommandresponse.tryprocessresponsecore( sipmessagedata,ref realtimeexception ) microsoft.rtc.collaboration!microsoft.rtc.collaboration.conferencing.establishfocussessionsasyncresult.participatecallback( iasyncresult ) microsoft.rtc.collaboration!microsoft.rtc.signaling.completioncallbackworkitem.microsoft.rtc.signaling.iworkitem.process() microsoft.rtc.collaboration!microsoft.rtc.signaling.workitemqueue.processitems() microsoft.rtc.collaboration!microsoft.rtc.signaling.serializationqueue<t>.resumeprocessing() microsoft.rtc.collaboration!microsoft.rtc.signaling.serializationqueue<t>.resumeprocessingcallback( object ) microsoft.rtc.collaboration!microsoft.rtc.signaling.queueworkitemstate.executewrappedmethod( waitcallback,object ) mscorlib!system.threading.executioncontext.run( executioncontext,contextcallback,object ) mscorlib!system.threading._threadpoolwaitcallback.performwaitcallbackinternal( _threadpoolwaitcallback ) mscorlib!system.threading._threadpoolwaitcallback.performwaitcallback( object ) 

garbage collection not triggered some time of inactivity. there nothing wrong seeing lot of instances of string or other class in memory. , interned strings (compile time constants) never collected.

you don't have memory leak until out-of-memory exception.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

qt - Errors in generated MOC files for QT5 from cmake -