Internet Explorer 9 Silverlight 4 perdita di memoria
Domanda
Stiamo streaming video da un ASHX implementazione IHTTPAsynchandler al nostro client Silverlight.
Sul client Il gestore ASYNC sta uscendo in un'implementazione di Mediastreamsource.
Tutto funziona bene nell'ultimo Firefox, Chrome e anche in Internet Explorer 8.
Ma in Internet Explorer 9 vediamo una perdita di memoria.Ho usato UMDH per eseguire il debug della memoria e ho trovato un callstack che ha utilizzato 127 MB da 127 MB tra i discariche della memoria.Quindi penso di averlo ristretto fino a questo CallStack.
Ma ora non so ora continuare con il mio debug.Ecco le informazioni UMDH:
Prima il confronto tra la prima corsa e il secondo
+ 117440512 ( 134217712 - 16777200) 1 allocs BackTrace121282BC
+ 0 ( 1 - 1) BackTrace121282BC allocations
ntdll!RtlAllocateHeap+00000274
npctrl!???+00000000 : 56FE1A65
npctrl!DllCanUnloadNow+000157F0
npctrl!???+00000000 : 56FF477E
npctrl!???+00000000 : 56FF48D5
urlmon!CBSCHolder::OnDataAvailable+0000003A
urlmon!CBinding::CallOnDataAvailable+0000002B
urlmon!CBinding::OnDataNotification+000000D7
urlmon!CBinding::OnTransNotification+000001DB
urlmon!CBinding::ReportData+00000085
urlmon!COInetProt::ReportData+0000006E
mscorie!CorFltr::ReportData+0000002B
urlmon!CTransaction::DispatchReport+0000037A
urlmon!CTransaction::OnINetCallback+000000DB
urlmon!TransactionWndProc+00000028
USER32!InternalCallWinProc+00000023
USER32!UserCallWinProcCheckWow+00000109
USER32!DispatchMessageWorker+000003BC
USER32!DispatchMessageW+0000000F
IEFRAME!CTabWindow::_TabWindowThreadProc+00000722
IEFRAME!LCIETab_ThreadProc+00000317
iertutil!CIsoScope::RegisterThread+000000AB
IEFRAME!Detour_DefWindowProcA+0000006C
kernel32!BaseThreadInitThunk+0000000E
ntdll!__RtlUserThreadStart+00000070
ntdll!_RtlUserThreadStart+0000001B
.
La seconda esecuzione callstack
+ 7fffff0 ( 7fffff0 - 0) 1 allocs BackTrace121282BC
+ 1 ( 1 - 0) BackTrace121282BC allocations
ntdll!RtlAllocateHeap+00000274
npctrl!???+00000000 : 56FE1A65
npctrl!DllCanUnloadNow+000157F0
npctrl!???+00000000 : 56FF477E
npctrl!???+00000000 : 56FF48D5
urlmon!CBSCHolder::OnDataAvailable+0000003A
urlmon!CBinding::CallOnDataAvailable+0000002B
urlmon!CBinding::OnDataNotification+000000D7
urlmon!CBinding::OnTransNotification+000001DB
urlmon!CBinding::ReportData+00000085
urlmon!COInetProt::ReportData+0000006E
mscorie!CorFltr::ReportData+0000002B
urlmon!CTransaction::DispatchReport+0000037A
urlmon!CTransaction::OnINetCallback+000000DB
urlmon!TransactionWndProc+00000028
USER32!InternalCallWinProc+00000023
USER32!UserCallWinProcCheckWow+00000109
USER32!DispatchMessageWorker+000003BC
USER32!DispatchMessageW+0000000F
IEFRAME!CTabWindow::_TabWindowThreadProc+00000722
IEFRAME!LCIETab_ThreadProc+00000317
iertutil!CIsoScope::RegisterThread+000000AB
IEFRAME!Detour_DefWindowProcA+0000006C
kernel32!BaseThreadInitThunk+0000000E
ntdll!__RtlUserThreadStart+00000070
ntdll!_RtlUserThreadStart+0000001B
. Soluzione
Have you already solved your problem?
Have you checked SL memory debugging tips such as:
http://www.dllshepherd.net/2011/02/silverlight-memory-leak-part-2.html