我有一個程序,當它打開一個頁面時瀏覽URL鏈接,它增加了內存使用量,並繼續增加。我發現兩三個小時後,它佔據了我的1和半gb內存打開hunderd頁面我該如何解決這個問題。網頁瀏覽器控制與內存增加問題
回答
根據this answer到the same question,內存在每個頁面請求/加載時增加,但會在一段時間內釋放 - 這意味着它實際上不是內存泄漏。儘量減少應用程序窗口 - 是內存釋放呢?
在這種情況下,你可以嘗試定期通過這個代碼,以修整應用程序的工作集(從this forum thread,由mike_t2e答案):
// In class definition
[DllImport("KERNEL32.DLL", EntryPoint = "SetProcessWorkingSetSize", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
internal static extern bool SetProcessWorkingSetSize(IntPtr pProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);
[DllImport("KERNEL32.DLL", EntryPoint = "GetCurrentProcess", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
internal static extern IntPtr GetCurrentProcess();
// ...
// Call this when you want to trim the working set
IntPtr pHandle = GetCurrentProcess();
SetProcessWorkingSetSize(pHandle, -1, -1);
嗨安德斯菲爾德斯塔德, 感謝您的支持。 Regards, Manish。 – 2010-02-05 14:24:53
這不起作用。我做了一個測試,檢查這個線程:http://stackoverflow.com/questions/6147923/webbrowser-memory-problem – Juan 2011-06-27 04:29:53
SetProcessWorkingSetSize實際上並沒有釋放任何內存。 它確實增加了將內存轉出到磁盤的概率, 並可能導致GC收集。
我不明白WebBrowser控件的背景下運作,但我已經意識到一兩件事:
我的程序經過500個或多個頁面以及讀取這些新的內容。它很快耗盡了RAM ,並且如果我再次運行通過所有這些頁面運行的相同函數,它只會從Web瀏覽器緩存中讀取,因此只需幾秒鐘即可完成。
這意味着我們只需要清空瀏覽器緩存以釋放RAM。對?我發現 這個解決方案,但它不起作用。
http://support.microsoft.com/kb/326201/en-us
它永諾給我PrtectedMemoryException ...
好了,這怎麼可能,當我關閉我的應用程序內存只有釋放, 當我處理我的網頁瀏覽器它不釋放控制並創建新的?
我想不出如何執行資源提供的代碼。 – atwellpub 2012-03-23 20:47:56
RT _>它總是給我ProtectedMemoryException
。
無論是從項目屬性改變你的平臺x86
- >建立或internetCacheEntry.lpszLocalFileName更換
returnValue = DeleteUrlCacheEntry(internetCacheEntry.lpszSourceUrlName);
。
- 1. 重新控制網頁瀏覽器控制問題
- 2. 如何增加網頁瀏覽器控件中的行間距
- 3. 想要使用網絡瀏覽器控制保存網頁
- 4. winforms網頁瀏覽器控件中的JavaScript訪問問題
- 5. wpf網頁瀏覽器cpu問題
- 6. 網頁瀏覽器內的網頁瀏覽器
- 7. 強制網頁瀏覽器控制無法加載圖像
- 8. IE瀏覽器的內存問題
- 9. 控制瀏覽器緩存
- 10. winforms網頁瀏覽器控件Javascript問題
- 11. 閱讀網頁瀏覽器控件中的網頁標題
- 12. 遠程控制檯在網頁瀏覽器上訪問heroku?
- 13. winforms網頁瀏覽器控制訪問標籤
- 14. 替代網頁瀏覽器控制和Chromium CefSharp控制wpf C#
- 15. 瀏覽器緩存問題
- 16. 視圖控制器裏面內容的瀏覽問題
- 17. iOS內存增加問題
- 18. 瀏覽器問題與ASP.net標準控制按鈕
- 19. 在wpf網絡瀏覽器控件中瀏覽安全網頁
- 20. 內存問題與cvShowImage和Kinect SDK:骨骼瀏覽器
- 21. 如何在瀏覽器中使用網頁瀏覽器控件?
- 22. 在vb「網頁瀏覽器控件」中打開Chrome瀏覽器
- 23. 在內存中瀏覽網頁
- 24. 刪除網站的一部分;網頁瀏覽器控制。 C#
- 25. 無法登錄到網頁瀏覽器控制中的網站
- 26. .net網頁瀏覽器控件
- 27. 網頁瀏覽器控件點擊
- 28. 標籤式網頁瀏覽器控件
- 29. 瀏覽器控制器與webview崩潰
- 30. 強制網頁瀏覽器下載整個頁面內容
你能粘貼你的代碼嗎?這聽起來像你正在節省一些資源,併發布它 – Amirshk 2010-02-04 11:04:33