【发布时间】:2011-08-14 05:24:33
【问题描述】:
我很好奇典型的 C# 分析器是如何工作的?
虚拟机中是否有特殊的钩子?
是否容易扫描函数调用的字节码并将调用注入到启动/停止计时器?
或者这真的很难,这就是为什么人们要花钱购买工具来做到这一点?
(作为旁注,我发现有点有趣,因为它非常罕见 - 谷歌在搜索“how does a c# profiler work?”时完全错过了这艘船 - 结果是关于空调......)
【问题讨论】:
-
通常很多分析器会非常频繁地对堆栈进行快照以查看它当前的位置。然后他们使用这些快照构建统计数据。当然,C# 很可能不是这种情况,所以请谨慎对待。
-
当我在 Google 上搜索该字符串时,它工作正常。但请注意,当您单击链接时,页面标题中的搜索字符串在“c”之后被截断:
#可能在某处搞砸了…… -
我得到了与@Gabriel 相同的 Google 结果,但将其更改为——“c#”分析器如何工作——修复了这个问题。我仍然没有得到任何好的答案,这么好的问题。将 C# 更改为 CLR,将 Profiler 更改为 Profiling,您可能会得到更好的结果。
-
请注意,它不是 C# 分析器 - 它是 CLR 分析器。因此:google.com/search?q=how+does+a+CLR+oprofiler+work%3F