首页 > 解决方案 > 为什么在尝试打开 ConcurrencyVisualizerProfiler 数据时收到“收集无法继续,因为内核事件丢失”消息?

问题描述

在尝试使用 BenchmarkDotNet 库 (v0.11.5) 分析简单 .NET Core (v3.0) 方法的性能时,使用ConcurrencyVisualizerProfiler放在正在测量的方法/类上的属性,我收到了一个 CvTrace 文件,因为基准。

namespace ConsoleApp2
{
    [ConcurrencyVisualizerProfiler]
    public class BenchmarkTest
    {
        [Benchmark]
        public List<int> CalculatePrimesParallelly()
        {
            return ParallelEnumerable.Range(1, 100)
                .Where(i => IsPrime(i))
                .ToList();
        }
    }
}

当我尝试使用 Visual Studio 2017 和Concurrency Visualizer for Visual Studio 2017插件打开它时,我收到一条消息:

由于内核事件丢失,收集无法继续。

我应该怎么做才能获得数据可视化?

标签: benchmarkdotnet

解决方案


需要添加

<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>

将项目的 .csproj 文件放入<PropertyGroup>元素中。

重新运行数据完成后,插件能够加载它。


推荐阅读