【发布时间】:2012-05-23 10:09:43
【问题描述】:
我知道What features should a C#/.NET profiler have? 已经在这里提出了类似的问题,但是这个线程不仅是关于愿望清单,而且是关于如何去实现这个愿望清单。
所以让我再问你一次。我正在构建通用性能分析器。我知道我可以将 dll 作为输入,并采用通常的秒表方法来分析该 dll 中方法的响应时间。但这是非常基本的东西。我愿意使用第三方 api(或自己编写一些代码)来提取我可以从该 dll 中获得的任何有用信息。我想知道让它变慢的一切。我想知道它的内存泄漏。任何可以帮助我找到应用程序瓶颈的东西。我想要类似的方法来查找昂贵的数据库操作。但这一切都在一个应用程序下完成。
那么你建议什么方法?我可以将哪些工具放在我的保护伞下,以便在我的项目中使用它们?
我想制作一个“单一”应用程序,它将接受像 dll 这样的通用输入,也可以将输入作为源代码树(解决方案、项目、.cs 文件)并以响应时间的形式发出结果,识别瓶颈,内存泄漏等。
【问题讨论】:
-
您正在寻找 .Net 分析 API。
-
在一般的情况下(尤其是把dll作为输入和输出),这是一个相当复杂的问题;确保您没有低估这里可能涉及的内容!几乎可以说(虽然不完全是,但很明显):“如果你自己还不能回答这个问题,那么你编写一个有效的分析器的机会就微乎其微了”
-
@MarcGravell - 那么应该如何从其他项目中获取输入呢?我现在正处于计划阶段。
-
定义“从其他项目中获取输入”
-
@MarcGravell - 好吧,我可以访问项目的源代码,因为它们都是我们自己公司的产品。现在我的输入应该是什么?如果我将 dll 作为输入并尝试对它们进行反思,然后再分析它们,那么它会非常慢。
标签: c# sql-server profiler