Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#/.NET探查器应该具备哪些功能?_C#_.net_Performance_Profiler - Fatal编程技术网

C#/.NET探查器应该具备哪些功能?

C#/.NET探查器应该具备哪些功能?,c#,.net,performance,profiler,C#,.net,Performance,Profiler,这可能是一个边缘广告,更不用说主观,但问题是诚实的。在过去的两个月里,我一直在为.NET开发一个新的开源分析器,名为SlimTune profiler() 这是一项相对较新的工作,但当我查看可用的分析器的范围时,我并没有印象深刻。我已经在现有产品的基础上做了一些初步的工作,但我觉得这是一个很好的提问的地方:你到底想从剖析器中得到什么 我来自实时图形和游戏,所以对我来说,尽快开发一个剖析器是很重要的。否则,游戏将变得不可玩,分析一个不可玩的慢游戏往往不是很有启发性。因此,我愿意牺牲一些准确性。我甚

这可能是一个边缘广告,更不用说主观,但问题是诚实的。在过去的两个月里,我一直在为.NET开发一个新的开源分析器,名为SlimTune profiler()

这是一项相对较新的工作,但当我查看可用的分析器的范围时,我并没有印象深刻。我已经在现有产品的基础上做了一些初步的工作,但我觉得这是一个很好的提问的地方:你到底想从剖析器中得到什么

我来自实时图形和游戏,所以对我来说,尽快开发一个剖析器是很重要的。否则,游戏将变得不可玩,分析一个不可玩的慢游戏往往不是很有启发性。因此,我愿意牺牲一些准确性。我甚至不在乎例外情况。但我不太熟悉其他类型应用程序的开发人员感兴趣的内容。你有什么成功或失败的特点吗?现有的工具落在哪里


再次,如果这只是StackOverflow的基础,我很抱歉,但它对我来说一直是一个非常有用的资源,而且这里有非常广泛的开发人员。

如果它做了同样的事情,我将非常高兴。

我的要求:

  • 收集统计数据而不影响应用程序-例如,不要填满内存,允许从有问题的应用程序收集数据
  • 能够简单且可重复地指定测量值(数据驱动)
  • 自动化,因此我可以重复测量,无需点击,无需用户界面
  • 使我们能够理解与WPF和其他声明性技术(如DLR或WF)相关的问题
  • 无安装-无gac、msi等,如果可以在网络上运行则更好
  • 从一开始就支持64位
  • 不要试图了解所有可以做的分析——鼓励生态系统。如果可以使用其他工具分析原始统计数据就更好了
  • UI(如果有的话)应该是好的——但重要的是统计数据。所以,不要在这上面花费时间,要做好核心评测。
    • 支持对与服务和web应用程序不同的应用程序进行评测
希望:

  • 考虑跨应用程序支持——大型应用程序通常需要了解跨多个可执行文件的应用程序性能行为。如果您的分析器允许轻松关联这些数据,那就更好了
    • 这是一个免费的.Net档案器,我一直想用它

      我想看到的一件事是单声道兼容性。我已经开始涉足Mono,如果有一个.Net和Mono分析器就太好了

      我的愿望清单:

      • 非常易于使用-简单(但功能强大)的GUI
      • 出色的性能-能够分析使用量极高的应用程序
      • X64X32支持
      • 了解SQL,能够为我的所有SQL调用以及SQL提供堆栈跟踪和持续时间
      • 易于配置,无需经历复杂的重新编译应用程序过程
      • 易于分析作为副作用启动的服务、网站和流程
      • “生产模式”,允许您从基于生产的系统收集关键统计数据。
        • “自动瓶颈查找器”:针对生产应用程序运行,并使用启发式方法确定哪些方法比较慢
      • 根据线程分析,告诉我哪些线程正在做所有的工作,以及在哪里
      • 在不同粒度的配置文件中,允许执行“便宜”的配置文件,该配置文件只收集关键信息,并使用粒度配置文件进行挖掘
      • 异常跟踪器,允许我跟踪应用程序中抛出的所有异常(关键统计数据和详细信息)
      • 每线程评测-允许我评测应用程序中的单个线程

      下载Visual Studio 2010 Beta 1的Team Suite版本(6个月左右免费),并配置一个C#应用程序

      相信我。:)

      编辑:逐行模式帮助我隔离了导致性能问题的操作员。我可以在没有每行高亮显示的情况下找到它,但是当你可以滚动查看使用它的热线时,你可以很容易地修复它

      哦,如果您需要反馈/帮助,请分别与我联系

      摘要视图:选择要筛选的CPU图表的任何部分。

      (来源:)

      我喜欢页边空白处的一行一行:


      (来源:)

      我会在这里再加一个,那真的很好。制作一个具有
      标记(字符串)
      函数的简单程序集,如果应用程序调用了该方法,那么在结果中,您可以选择从那里查看结果(结束|其他指定标记)。另一种可能是
      BeginSequence
      EndSequence
      之类的。如果您可以指定标记是仅适用于当前线程还是适用于所有线程,则为Double plus。

      如果集成了来自Perfmon的与.NET相关的评测措施,则最好避免使用Perfmon和您的应用程序进行“双重”监视。这对所有与内存相关的项目都非常有用。

      我首选的探查器是“DevPartner性能分析社区版”(DevPartner Performance Analysis Community Edition),不幸的是,它不再可用

      使其在竞争中脱颖而出的是图形分析,该分析显示了一个框,其中包含当前选定的方法和被调用方法的输出连接器,显示了每个方法花费的时间百分比。也可以连接到来电。当然,这些caling和called方法具有相同的特性,您可以根据需要扩展它们 通过这种方式,您可以在调用堆栈上自由导航,查看堆栈的深度,并处理片段中的热路径

      第二个需求是“易用性”,即它应该与所有相关的应用程序类型一起运行