2012-08-28 87 views
1

在我的應用程序只有一個網頁瀏覽器和幾個定時器,但如果網頁瀏覽器加載,它使用的CPU的50%和AFER5分鐘周圍的120K RAM。我能做什麼?WebBrowser控件佔用太多的CPU和RAM

我的代碼:如果在控件加載一些沉重的網頁

Public Sub work() 
    WebBrowser1.Navigate("Site") 
    tim.Start() 
End Sub 

Public Sub work2() 
    WebBrowser1.Document.GetElementFromPoint(point).InvokeMember("click") 
    tim2.Start() 
    tim.Stop() 
End Sub 

Dim point As New Point(800, 30) 
Dim WithEvents tim As New Timer 
Dim WithEvents tim2 As New Timer 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    tim.Interval = 6000 
    tim2.Interval = 6000 
    work() 
End Sub 

Private Sub tim_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim.Tick 
    work2() 
End Sub 

Private Sub tim2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim2.Tick 
    work() 
End Sub 
+0

當然,它是120 *兆字節*? –

回答

0

120K聽起來很合理。例如。如果您以mht格式(完整存檔)從IE內保存microsoft.com的主頁,則它幾乎爲1MB大小。處理器使用情況很可能取決於點擊處理程序的功能 - 是否有任何重要的腳本附加到元素上?

+0

是的......這是,但我能做些什麼來減少CPU和RAM的消耗?因爲2-3小時後程序停止響應並關閉。 – user1608730

+0

如果沒有加入你的應用程序召開網頁元素的任何引用,也不是事件處理程序,它可能是在瀏覽器控件本身就是一個問題。也許你可以與處理每個網頁允許垃圾回收器釋放由瀏覽器控件舉行的內存後更換一個新的控件實例 - 從form.Controls將其刪除,並添加一個新的實例。 – Slavcho

1

長,很久以前因爲這被問過,但我寫這篇文章我一直在我自己的項目,以創建一個Vb.net YouTube應用,並在幾個星期我一直停留在試圖找出爲什麼IE包裝Web控制正在採取這麼多我的CPU的處理和播放視頻,以及缺乏發現與我的問題就解決什麼什麼好的幫助的時候,我終於研究不夠,找到了解決我的問題,這是使用的,我增加了我的計劃,檢查和根據需要添加的程序的啓動,這兩個我發現這是一個很大的幫助都是FEATURE_BROWSER_EMULATION和FEATURE_GPU_RENDERING,默認情況下,我認爲,可能是錯誤的,VB的特徵註冊表項.net wrapper使用IE7,但如果您將其更改爲最新版本的程序,它會使其更安全並提高性能,而不是您可以轉向在你的程序的名字上使用DWORD子鍵1來渲染gpu,這將使gpu處理一些工作負載,這也大大提高了速度。使用這些技術使得webcontrol可以利用大約70-80%的CPU在視頻下降到3%和20%CPU利用率的高峯期,這有利於未來的參考,還可以在此處瞭解更多關於註冊表功能的信息https://msdn.microsoft.com/en-us/library/ee330733(v=vs.85).aspx