2010-04-07 50 views
4

我正在尋找一個免費的代碼分析器(性能分析器,而不是內存分析器),它適用於VSTO應用程序(特別是Excel在我的情況,但我收集,如果它適用於一個,它應該爲所有人工作)。VSTO應用程序代碼分析

我試過Eqatec Profiler,但它似乎無法從探查器啓動應用程序(運行應用程序按鈕變灰,我正在收集的是因爲VSTO應用程序被編譯爲一個dll,它運行在Excel.exe進程)。

如果有人已成功使用Eqatec或其他免費代碼分析器來分析VSTO應用程序,我很樂意聽到您是如何做到的。

回答

2

你在做什麼應該可以用EQATEC Profiler

當你簡單地檢測一個或多個DLL時,沒有獨特的「應用程序運行」:你只是有一些儀表化的DLL,但分析器不知道你打算如何使用它們。

但是,插裝程序集(連同運行時模塊,EQATEC.Profiler.RuntimeFullNet.dll)始終完全「自包含」,這意味着只要使用它們中的方法,它們就自行執行計時。所以你只需要讓你的VSTO應用像往常一樣加載DLL,並且瞧,DLL本身就會開始累積時間信息,並開始監聽探查器的連接,然後你可以拍攝快照等。

所以總結:

  1. 建立你的DLL,並保持運行
  2. 讓你的VSTO應用程序加載DLL(但是你這樣做)
  3. 探查和儀表DLL現在應該連接分析器(見潤選項卡)
  4. 從專業人士你現在可以拍快照

我希望這有助於。如果沒有,然後讓我知道。

+0

抱歉這麼長時間迴應你的回答...我被轉移到一些不相關的任務上,只是回到了這個問題上。 我已經嘗試過使用您提供的說明,並且它完美地工作。 只是爲了澄清其他人讀這個,一個「快照」不是應用程序的當前狀態(這是最初困惑我)的快照。相反,這是剖析器已經採用的測量快照。每個快照報告都包含從上次快照開始的所有方法調用的概要分析。 – Teevus 2010-06-30 08:09:08

0

您是否試過微軟的CLR Profiler

我已經使用它很多次了很大的成功。

+0

感謝您的回覆。我實際上是在性能分析器之後而不是內存分析器。我會相應地更新這個問題。 出於興趣,如何使用CLR Profiler來存儲配置文件VSTO應用程序,因爲沒有可運行的exe文件(它編譯爲從excel啓動的dll)。 – Teevus 2010-06-30 07:28:11

+0

* CLR Profiler *有三個組件;一個讀取日誌文件的GUI可執行文件,一個稱爲ProfileObj的COM組件,該COM組件生成日誌文件,以及CLR Profiler Control,允許您通過應用程序控制配置文件(通過PInvoke登錄到ProfileObj)。請參閱CLRProfilerControl的演示文件夾。 – AMissico 2010-06-30 08:52:42