2009-01-06 40 views
3

我有幾個客戶,我的WinForms應用程序的性能不如其他客戶。我在辦公室使用JetBrain的dotTrace,但這並不能幫助我找到客戶機器上的瓶頸。如何分析已部署給客戶的.NET應用程序的性能?是否有任何帶有可再發行組件的概要分析工具,可讓我生成性能分析結果,直到我將結果(dotTrace中的快照)返回到完整概要分析工具後才能使用該結果?如何分析已部署給客戶的.NET應用程序的性能?

更新:由於NProf是免費發佈的,我正考慮將其部署到客戶的工作站。我會在這裏報告結果。

回答

3

我不熟悉dotTrace,但我已經使用了Visual Studio 2008的儀表和分析工具,Visual Studio中的情況下,我相信他們都散發着.NET 3.5 SDK。

VSInstr.exe工具: http://msdn.microsoft.com/en-us/library/ms182402.aspx 將檢測已部署的二進制文件。

VSPerfCmd: http://msdn.microsoft.com/en-us/library/ms182403.aspx 可以從插裝應用程序捕獲性能數據。

我從來沒有直接和單獨完成它的命令行,所以我不能爲您提供多大的幫助,但我估計這是爲你的另一種選擇,至少。

1

所以我認爲你可能會需要是衡量業績的廣告部署時間的一些方法。儘管它們不太重要,但我可能會考慮將性能計數器添加到您的應用程序中。見System.Diagnostics。我廣泛使用它來監視部署中的應用程序。我已經發現,性能卓越的配置文件有時會因爲開銷而隱藏某些問題。例如,如果您的應用程序遇到數據庫,並且磁盤速度較慢,導致查詢花費的時間較長,這可能在分析器中不明顯,因爲應用程序運行速度通常較慢。

因爲如果你的應用程序並不需要安裝我可能會做一個「診斷模式」的Perf Counters的一部分,因爲它們安裝有管理權限的客戶端需要管理員權限。您可能希望將perf計數器用於衡量數據庫和服務調用的持續時間,可能增長的數據結構的大小以及發生的失敗次數等事情。

我們已經知道,你的代碼的工作,因爲在某些客戶設置它工作正常。因此,考慮添加儀器到您的應用程序。它是編寫像良好日誌記錄這樣可靠軟件的重要元素之一。這並不好玩,但在我看來它需要完成。它通常是唯一讓您瞭解您的應用程序在部署中所做的事情的可見性。目前我正在使用的應用程序從Rev 1中的約20個perf計數器到第2版中的約150個。我並不是始終監視大多數計數器,而是爲了提醒我注意性能和可靠性問題,他們非常值得花時間。

+0

我看到內存使用和數據庫的速度,而不是執行速度的實用性,比如什麼是應用程序啓動過程中的瓶頸。你有什麼建議使用性能計數器的應用程序啓動? – flipdoubt 2009-01-06 17:35:04

相關問題