所以,我正在構建一個WPF應用程序,並在今天進行了測試部署,並發現它的性能很差。我很驚訝,因爲我們在視覺效果或動畫方面做得並不多。WPF:提高在舊電腦上運行的性能
我部署在兩臺機器上:運行應用程序所需要的最快和最慢的(最慢的PC有一個帶有2GB RAM的Intel Celeron 1.80GHz)。應用程序在速度更快的機器上運行得非常好,但在較慢的機器上卻不穩定。而當我說「波濤洶涌」時,我的意思是光標跳過,甚至只是將它傳遞給有焦點的應用程序的任何打開的窗口。
我打開了任務管理器性能窗口,可以看到每當應用程序有焦點並且光標在其上移動時,CPU使用率都會跳動。如果我將注意力集中到另一個(例如Excel),則CPU使用率在一秒鐘後回落。這發生在兩臺機器上,但在較慢的機器上只有顯而易見的變化。我對修改部署機器的時間非常有限,所以沒有做很多詳細的測試。
該應用程序在我的開發機器上運行良好,但我也看到CPU高達10%,只是在窗口上運行光標。
我從MS下載了WPF性能工具,並一直在修補它(在我的開發機器上)。該文件說這對「幀速率」,在射孔工具指標:
對於沒有動畫應用, 此值應接近於0
應用程序是沒有做任何重動畫,但是當光標在任何窗口上時,幀頻保持接近50。我測試過的屏幕在網格中有「突出顯示」的列標題和滾動時改變顏色和外觀的按鈕。即使在窗口的空白區域移動鼠標也會導致相同的幀頻和CPU使用率(似乎與這些次要動畫無關)。 (另外,我無法弄清楚除了兩個默認工具Perforator和Visual Profiler以外,如何安裝WPF性能工具,這可能是一個單獨的問題)。
我也有Redgate的分析工具,但我不確定這是否會影響渲染性能。
所以,我意識到這不是一個簡單的事情排除故障,沒有具體細節或示例代碼(我不能發佈)。我的問題是:
- 都有些什麼東西一般看 的(或避免)的代碼以提高性能 ?
- 我可以使用WPF 性能工具來縮小 問題的步驟?
- 上面列出的PC規格(Intel Celeron 1.80GHz,2GB RAM)太慢,甚至無法運行香草WPF應用程序?