MiniProfiler(https://miniprofiler.com/)是一个轻量级且简单易用的分析工具库,它可以用来分析ASP.NET Core应用。
优点
针对ASP.NET Core MVC应用,使用MiniProfiler的优点是:它会把结果直接放在页面的左下角,随时可以点击查看;这样的话就可以感知出你的程序运行的怎么样;同时这也意味着,在你开发新功能的同时,可以很快速的得到反馈。
一、安装配置MiniProfiler
在现有的ASP.NET Core MVC项目里,通过Nuget安装MiniProfiler :
Install-Package MiniProfiler.AspNetCore.Mvc
当然也可以通过Nuget Package Manager
可视化工具安装
接下来配置MiniProfiler,总共分三步:
第一步,来到Startup.cs
的ConfigureServices
方法里,添加services.AddMiniProfiler();
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); // 当然这个方法还可以添加一个lambda表达式作为参数,从而做一些自定义的配置: services.AddMiniProfiler(options => { // 设定弹出窗口的位置是左下角 options.PopupRenderPosition = RenderPosition.BottomLeft; // 设定在弹出的明细窗口里会显式Time With Children这列 options.PopupShowTimeWithChildren = true; }); }
第二步,来到来到Startup.cs
的Configure
方法里,添加app.UseMiniProfiler();
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { ... // 最重要的一点是就是配置中间件在管道中的位置,一定要把它放在UseMvc()方法之前。 app.UseMiniProfiler(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
第三步,将MiniProfiler
的Tag Helper
放到页面上
- _ViewImports 页面引入 MiniProfiler 的 Tag Helper :
... @using StackExchange.Profiling ... @addTagHelper *, MiniProfiler.AspNetCore.Mvc
- 将 MiniProfiler 的Tag Helper 放入 _Layout.cshtml 中:
... @* 其实放在页面的任意地方都应该可以,但是由于它会加载一些脚本文件,所以建议放在footer下面: *@@* 其实放在页面的任意地方都应该可以,但是由于它会加载一些脚本文件,所以建议放在footer下面: *@... @RenderSection("Scripts", required: false)