我们有一个客户端/服务器应用程序,我想要对它们进行分析以创建指标,例如“平均登录时间为xx ms,其中xxx为最大值,x为最小值,自yyyy以来总共为xx登录”和等等。
我知道Equatec和ANTS分析器(我很喜欢)。但我认为他们不提供我需要的功能。
当然,我可以自己编写必要的函数,但我认为ANTS或Equatec可以自己做得很好,必须有一些方法来使用该功能。
我需要什么:
尽可能多地收集有关函数调用的数据,同时仍保持合理的性能
缩放会像(de)选择我不想监控的代码路径一样好
将所有收集的数据保存在数据库中,无论是本地数据库还是远程SQL数据库
如果该工具可以自行创建像ANTS这样的图形,那将会很酷,但原始数据就足够了
代码是用C#3.5(服务器和客户端< - >服务器通信)和C ++(客户端GUI)编写的。监控C ++代码也很好(C#嵌入为COM对象),但暂时监控C#就足够了
这不是免费的,但必须进行测试试验。
答案 0 :(得分:1)
Profilers更加以代码/功能为中心,对性能产生很大影响。另外,将您的代码推送给用户是不可能的 我认为您应该考虑使用log4net之类的日志框架作为代码,然后配置日志记录以将结果保存到数据库中,您可以使用它来分析性能数据。
答案 1 :(得分:0)
以下是我现在能想到的几个选项:
编辑: 我怎么能忘记这个小宝石!
MiniProfiler可以像这样包裹你的代码:
var profiler = MiniProfiler.Current; // it's ok if this is null
using (profiler.Step("Doing complex stuff")){
using (profiler.Step("Step A"))
{ // something more interesting here
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{ // and here
Thread.Sleep(250);
}
}