2011-09-16 66 views
5

我有以下的,很奇怪的問題,在生產環境中我的WPF應用程序:WPF應用程序完全凍結1分鐘

  • 的客戶報告的程序是極其緩慢。有時整個接口會凍結約一分鐘
  • 在此「凍結」期間,沒有CPU活動。其他程序仍然可以正常工作
  • 當用戶物理上位於PC後面時,總是會出現此問題。也就是說,當我使用RDP或TeamViewer登錄時,問題很難重現,儘管我已經看到它發生了
  • 更令人奇怪的是:該公司擁有大約40臺具有相同硬件的PC。只有其中5人出現此問題(PC:HP Compaq 6000 Pro小外形尺寸)

我將在幾天內訪問該公司,以便對PC具有物理訪問權限。

需要注意的一件事:這個程序運行在大約1000家公司沒有問題,這讓我覺得硬件有問題。

你會如何診斷這樣的問題?哪些工具?任何提示或指針?

+1

電腦沒有3D芯片組?所以他們沒有加速生成wpf? – ykatchou

+2

我想知道是否做了類似這樣的事情:http://blogs.technet.com/b/markrussinovich/archive/2010/12/07/3373406.aspx和這個:http://blogs.technet.com/b/ markrussinovich/archive/2010/01/13/3305263.aspx將有助於診斷問題。 – Ray

+0

你使用的是什麼版本的框架?應用程序的後端是什麼樣的?它是否訪問網絡資源,如數據庫,Web服務等?事件日誌中是否有任何內容? – RQDQ

回答

1

謝謝大家的建議。我嘗試了其中的各種。在這種情況下,雷的評論是最有幫助的,他說:

「我想知道是否做了類似這樣的事情:blogs.technet.com/b/markrussinovich/archive/2010/12/07/...和這個:blogs.technet.com/b/markrussinovich/archive/2010/01/13/...將有助於診斷問題 - Ray 9月16日9:32「

進程監視器指出,那麼當應用程序是閒置,有與Direct3D相關的註冊表的各種讀取。這使得視頻卡驅動程序可疑。我已經刪除了驅動程序並安裝了更新的版本(我們之前已經嘗試過,但現在有更新的更新)。此更新解決了該問題。

1

我注意到我們實驗室有類似的行爲。該應用程序經常凍結,但無論是CPU還是聯網活動。舊機器和新機器上的許多PC都具有相同的行爲。

最後我明白了。由於應用程序使用網絡服務,並且 - 對於默認 - 代理是「自動」檢測,發現將凍結所有內容幾秒鐘。

通過設置代理爲空,一切都會好起來的。

http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx

+0

我們有一個類似的代理相關問題,但在我們的案例中,我們沒有使用Web服務。相反,由於網絡基礎架構的設置方式,內部某些東西試圖訪問網絡,導致某種代理超時。我認爲我們修改了一個machine.config設置來最終修復它。 – Justin

+0

我們不使用Web服務或任何相關的東西,在我們的情況下,這不是問題。但謝謝你的建議 –

-1

如果問題是WPF相關的,你應該檢查常見的性能瓶頸一樣昂貴的數據綁定或經常發生,並且在你的應用涉及大量處理UI事件。 在這種情況下,profiler是非常寶貴的工具,一些好的工具是SmartBear軟件的Red Gate性能分析器和AQTime。 另一個很好的工具是Snoop,WPF Spy Utility,它允許分析UI對象樹。如果這棵樹有不必要的對象,請考慮修剪。