如果您必须查看.prof文件,https://t.co/LktSgqheaP可以帮助:-dotnet pprof:CLI转储.prof文件-win pprof:GUI导航到.prof;关注采样、值、标签和调用堆栈我';我共享工具I';我每天都用它来查看我们的个人资料pic.twitter.com/FPlpRFsCtn
—Christophe Nasarre(@chnasarre)2022年10月11日

文章插图
网站、文件等 。推特
下面是分层编译在.NET中的大致工作原理 。现在猜猜我为什么向调用计数存根添加了两条额外的指令(大小回归!)并在web应用程序中h获得到这些好处? 提示:所有对B()的调用都命中同一内存位置,以减少B()调用计数器pic.twitter.com/iCIpyF8OMw
—Egor Bogatov(@EgorBo)2022年10月11日

文章插图
结论:关于.NET分层编译工作原理的粗略图示,以及为什么要增加这两个额外的调用,对Web应用程序有什么好处 。这似乎是为了减少在不同线程中执行同一方法时的缓存抖动,即从不同内核(或NUMA)访问同一内存位置 。
深入研究JIT: implement tail merging by AndyAyersMS · Pull Request #77103 · dotnet/runtimehttps://github.com/dotnet/runtime/pull/77103
版权原文版权:mayuki
原文链接:https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-10-17.md
翻译版权:InCerry
翻译链接:https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-10-17.md