Internet Explorer 9 Silverlight 4 Memory Fuge
Pregunta
Estamos transmitiendo video de un ASHX implementando iHTTPASYNCHANDERL a nuestro cliente Silverlight.
En el cliente, el manejador ASYNC se está utilizando en una implementación de MediaStreamSource.
Todo funciona bien en Firefox, Chrome y también en Internet Explorer 8.
Pero en Internet Explorer 9 Vemos una pérdida de memoria.He estado usando UMDH para depurar la memoria y haber encontrado una opción de llamada que usó 127 MB entre los volcados de la memoria.Así que creo que lo he reducido a este llamado.
Pero ahora no sé ahora para continuar con mi depuración.Aquí está la información UMDH:
Primero, la comparación entre la primera carrera y la segunda
+ 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 segunda carrera 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
Solución
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