MiniProfiler.EntityFrameworkCore

虽然才alpha4,vs2017还下不到,但已经可以用起来了。

step1:

 Install-Package MiniProfiler.EntityFrameworkCore -Version 4.0.0-alpha9-00206

step2:

 public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            var initializer = new DiagnosticInitializer(new[] { new RelationalDiagnosticListener() });
            initializer.Start();

        }

.....

step3:

    var profiler = MiniProfiler.StartNew("m");
            using (profiler.Step("SqlProfile"))
            {
                // 你的代码 
            

            }
            // 输出日志
            if (profiler?.Root != null)
            {
                var p = profiler.Root;
                Trace.WriteLine($"{p.Name}:{p.Id},{p.DurationMilliseconds} ms");
                if (p.HasChildren)
                {
                    p.Children.ForEach(x =>
                    {
                        Trace.WriteLine($"{p.Name}:{x.Name},st:{x.StartMilliseconds} ms,exec:{x.DurationMilliseconds} ms");
                        if (x.CustomTimings?.Count > 0)
                        {
                            foreach (var ct in x.CustomTimings)
                            {
                                Trace.WriteLine($"{p.Name}:Start {ct.Key} --- ");
                                ct.Value?.ForEach(y =>
                                {
                                    Trace.WriteLine($"{p.Name}:{y.CommandString}");
                                    Trace.WriteLine($"{p.Name}:Execute time :{y.DurationMilliseconds} ms,Start offset :{y.StartMilliseconds} ms,Errored :{y.Errored}");
                                });
                                Trace.WriteLine($"{p.Name}:End {ct.Key} --- ");
                            }
                        }
                    });
                }
            }


            profiler?.StopAsync(true).ConfigureAwait(false);
            return null;

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页