C# 获取 CPU 缓存未命中性能计数器
C# Get CPU cache miss performance counter
我知道 CPU 会计算所有 L1/2/3 缓存未命中,原则上可以访问此信息。例如。有一个来自英特尔的性能查看器。我只是找不到 C# 中的示例。是否可以从 .NET 访问此数据?
好吧,您可以使用 Intel Perfomance Counter Monitor 做到这一点(至少在 windows 上)。除了与其捆绑的其他工具外,它还包含 PCM-Service - windows 服务,该服务添加了 PCM windows 性能计数器。下载、编译和安装此服务后,您可以访问 L2 缓存未命中(例如),就像这样简单:
var pc = new PerformanceCounter("PCM Core Counters", "L2 Cache Misses", "total_"); // instead of total_ you can use number of core
var value = pc.RawValue; // or pc.NextValue() and so on.
英特尔 PCM 添加了更多有趣的计数器,当然不仅仅是缓存未命中,所有这些都可以从 .NET 访问。
我知道 CPU 会计算所有 L1/2/3 缓存未命中,原则上可以访问此信息。例如。有一个来自英特尔的性能查看器。我只是找不到 C# 中的示例。是否可以从 .NET 访问此数据?
好吧,您可以使用 Intel Perfomance Counter Monitor 做到这一点(至少在 windows 上)。除了与其捆绑的其他工具外,它还包含 PCM-Service - windows 服务,该服务添加了 PCM windows 性能计数器。下载、编译和安装此服务后,您可以访问 L2 缓存未命中(例如),就像这样简单:
var pc = new PerformanceCounter("PCM Core Counters", "L2 Cache Misses", "total_"); // instead of total_ you can use number of core
var value = pc.RawValue; // or pc.NextValue() and so on.
英特尔 PCM 添加了更多有趣的计数器,当然不仅仅是缓存未命中,所有这些都可以从 .NET 访问。