我正在使用EE4,每當我撥打_deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(picBox, picBox.Handle));
時,內存使用量增加約60 MB。問題是,當我關閉表格並處理_job
和_devicesource
上的所有資源時,系統不會釋放內存......即使我打電話給CG.collect();
,系統仍會使用這些60MB來執行某些操作。如果我嘗試多次調用表單,問題會更加嚴重。在某些時候,我得到內存不足錯誤,因爲內存利用率不斷增加。 有什麼建議嗎?我檢查了SDK示例,並且在所有情況下問題依然存在。所以我的問題是:這是一個錯誤?Microsoft ENcoder SDK內存泄漏
0
A
回答
0
我的錯誤...!我沒有正確處置所有資源:
_deviceSource.PreviewWindow = null;
_job.RemoveDeviceSource(_deviceSource);
_deviceSource.Dispose();
釋放視頻上使用的所有內存資源。
0
今天我遇到了同樣的問題。我發現,特別是你有打電話job.RemoveDeviceSource(source)
之前調用source.PreviewWindow.Dispose()
:
// The order in which we remove, dispose, and set null is very important.
// Anything less creates a huge memory leak.
// 1st Stop Encoding
job.StopEncoding();
// 2nd, Must Dispose the Preview Window
// Before Calling Job.RemoveDeviceSource << Absolutely
source.PreviewWindow.Dispose();
source.PreviewWindow = null;
// 3rd, Remove the Source
job.RemoveDeviceSource(source);
// 4th, Dispose the Source
source.Dispose();
source = null;
// 5th, Dispose the Job
job.Dispose();
job = null;
相關問題
- 1. Microsoft Unity - DerivedTypeConstructorSelectorPolicy內存泄漏
- 2. Corona SDK內存泄漏
- 3. Iphone sdk,內存泄漏
- 4. iPhone SDK的UIBarButton內存泄漏
- 5. Java/Android SDK內存泄漏使用inputStream.available()
- 6. Node.js AWS-SDK SQS內存泄漏
- 7. 內存泄漏:
- 8. 內存泄漏
- 9. 內存泄漏
- 10. 內存泄漏
- 11. 內存泄漏
- 12. 內存泄漏
- 13. 內存泄漏:
- 14. 內存泄漏
- 15. 內存泄漏
- 16. 內存泄漏
- 17. 內存泄漏
- 18. 內存泄漏
- 19. 內存泄漏
- 20. 內存泄漏
- 21. 內存泄漏
- 22. 內存泄漏
- 23. python內存泄漏,泄漏幀
- 24. 泄漏填充內存泄漏iPhone
- 25. STL替代內存泄漏
- 26. jsonp內存泄漏
- 27. dgemm_內存泄漏
- 28. 內存泄漏點
- 29. Java內存泄漏
- 30. NSKeyedUnarchiver內存泄漏
泄漏很可能是與本地域(非託管)資源發生,尤其是視頻有關,還可能與涉及第三方庫。如果沒有具體的信息很難給出建議,但是你應該'''檢查什麼是非MS DLL加載'2'問題發生在乾淨的Windows –
謝謝@Roman R.我會檢查任何非微軟編解碼器在電腦上,但我曾嘗試在不同的計算機上得到相同的結果。每次我執行PreviewWindow屬性時,我都能看到即使在表單完成Disposed和垃圾收集器被調用後也不會釋放的大量內存。如果我保持父表單處於活動狀態,則每次我調用裝入視頻的子表單時,內存利用率都會增加。我測試了一些其他使用Encoder 4的例子,結果相同。 – Timbolo