首页 > 解决方案 > .NET Core CLR 将一半时间用于等待 ntdll.dll

问题描述

我正在使用 dotTrace 分析一个高度并行的项目,并注意到 CLR 花费了将近 50% 的时间来等待ntdll.dll. 我很难弄清楚这归因于什么。

dotTrace 时间线

有没有办法可以确定是什么导致 CLR 花费这么多时间来调用内核?我已经将这个项目开发为尽可能低的分配,与运行所花费的时间相比,垃圾收集的使用可以忽略不计。我能想到的唯一原因是内存延迟或 CPU 缓存未命中,因为一些 CPU 密集型计算使用随机内存访问。

标签: c#.netperformanceprofiling

解决方案


推荐阅读