gpt4 book ai didi

.net - Visual Studio探查器,如何跟踪[clr.dll]的使用情况

转载 作者:行者123 更新时间:2023-12-04 00:24:12 25 4
gpt4 key购买 nike

当在Visual Studio中使用探查器来跟踪昂贵的功能时,我偶尔会发现大多数工作最终都在[clr.dll]中。这基本上相当于一个黑匣子,我想知道是否有一种方法可以追踪为什么它在那里花费了这么多时间。

我假设clr.dll处理诸如JIT编译,加载程序集和管理应用程序域,垃圾回收,反射之类的工作。但是,这实际上很难真正弄清是什么代码导致它花费大量时间。

显然,除了运行时本身之外,还有其他一些代码使它在clr.dll中花费了很多时间,那么如何查找有问题的代码呢?

最佳答案

您需要知道代码的哪一部分-您可以编辑和编译的代码,这是唯一可以修复的代码-该代码的哪一部分占用了很大一部分时间。

知道clr.dll使用了很多时间是没有好处的,除非您可以告诉您代码的哪一部分对此负责。

该信息在调用堆栈中。

如果您有一个方法,甚至一行代码,都在堆栈上保留了一定百分比的时间(例如20%),那么它大约占了该百分比的时间。
如果您能以某种方式消除该行代码(或花费更少的时间),则总时间的20%将变为零,或接近零,从而使加速因子为1.0/0.8 = 1.25或25%

那么,您如何找到这样的线呢?
This is the method I use.
没有人声称它很漂亮,除非总的结果得到赞赏。
如果重复应用,则为large speedup factors are possible

关于.net - Visual Studio探查器,如何跟踪[clr.dll]的使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com