【问题标题】:Code Profiling of VSTO applicationVSTO 应用程序的代码分析
【发布时间】:2011-02-05 02:09:36
【问题描述】:

我正在寻找适用于 VSTO 应用程序的免费代码分析器(性能分析器,而不是内存分析器)(在我的情况下特别是 Excel,但我认为如果它适用于一个应用程序,它应该适用于所有应用程序)。

我已经尝试过 Eqatec Profiler,但它似乎无法从分析器启动应用程序(运行应用程序按钮是灰色的,我正在收集这是因为 VSTO 应用程序被编译成一个运行在 -使用 Excel.exe 处理)。

如果有人成功使用 Eqatec 或其他免费代码分析器来分析 VSTO 应用程序,我很想听听您是如何做到的。

【问题讨论】:

    标签: profiling vsto


    【解决方案1】:

    EQATEC Profiler 应该可以实现您所做的事情。

    当您只是检测一个或多个 DLL 时,没有明显的“要运行的应用程序”:您只是有一些检测的 DLL,但分析器不知道您打算以何种方式使用它们。

    但是,检测的程序集(连同运行时模块 EQATEC.Profiler.RuntimeFullNet.dll)始终是完全“自包含的”,这意味着只要使用其中的方法,它们就会自行执行计时。因此,您只需让您的 VSTO 应用程序像往常一样加载 DLL,瞧,DLL 本身将开始累积时间信息并开始侦听来自分析器的连接,然后您可以使用它来拍摄快照等。

    总结一下:

    1. 构建您的 DLL 并保持探查器运行
    2. 让您的 VSTO 应用加载 DLL(无论如何您都可以这样做)
    3. 现在应该连接分析器和检测的 DLL(请参见运行选项卡)
    4. 您现在可以在分析器中拍摄快照

    我希望这会有所帮助。如果没有,请告诉我。

    【讨论】:

    • 很抱歉花了这么长时间才回复您的答案...我被转移到一些不相关的任务中,才刚刚回到这个问题上。我已经按照您给出的说明进行了尝试,并且效果很好。只是为了澄清其他阅读本文的人,“快照”不是应用程序当前状态的快照(这最初让我感到困惑)。相反,它是分析器到该点为止所进行的测量的快照。每个快照报告都包含自上次快照以来所有方法调用的分析。
    【解决方案2】:

    您是否尝试过 Microsoft 的 CLR Profiler

    我已经用过很多次了,非常成功。

    【讨论】:

    • 感谢您的回复。我实际上是在使用性能分析器而不是内存分析器。我会相应地更新问题。出于兴趣,如何使用 CLR Profiler 对 VSTO 应用程序进行内存分析,因为没有要运行的 exe(它编译为从 excel 启动的 dll)。
    • CLR Profiler 包含三个组件;读取日志文件的 GUI 可执行文件,生成日志文件的名为 ProfileObj 的 COM 组件,以及允许您通过应用程序控制分析(通过 PInvoke 记录到 ProfileObj)的 CLR Profiler Control。请参阅 CLRProfilerControl 的 Demos 文件夹。
    猜你喜欢
    • 2014-02-24
    • 2011-08-05
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    相关资源
    最近更新 更多