gpt4 book ai didi

在 ASP.Net Core 中使用 MiniProfiler的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在 ASP.Net Core 中使用 MiniProfiler的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

web应用程序的性能相信是大家普遍关心的一个问题,也相信大家有很多工具可用来分析应用程序的性能并能够找到其中的瓶颈,MiniProfiler 就是这个领域中的一款产品,它是一款简单的,功能强大的web应用分析工具,MiniProfiler 可用来帮助我们找到 慢查询, 慢响应 等问题.

MiniProfiler 可用在 Asp.Net 和 ASP.Net Core 中,这篇文章将会讨论如何使用 MiniProfiler,并通过它找到应用程序的性能问题.

安装 MiniProfiler

要想使用 MiniProfiler,需要通过 nuget 引用 MiniProfiler.AspNetCore.Mvc 包,可以通过 Visual Studio 2019 的 NuGet package manager 可视化界面安装 或者 通过 NuGet package manager 命令行工具输入以下命令:

dotnet add package MiniProfiler.AspNetCore.Mvc

安装好之后,接下来就要将 MiniProfiler 注入到 ServiceCollection 容器中,如下代码所示:

 // This method gets called by the runtime. Use this method to add services to the container.    public void ConfigureServices(IServiceCollection services)    {      services.AddControllersWithViews();      services.AddMiniProfiler(options => options.RouteBasePath = "/profiler");    }

注入好之后,接下来就需要使用 UseMiniProfiler 扩展方法将其注入到 Request Pipeline 管道中,如下代码所示:

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)    {      app.UseMiniProfiler();      app.UseEndpoints(endpoints =>      {        endpoints.MapControllerRoute(          name: "default",          pattern: "{controller=Home}/{action=Index}/{id?}");      });    }

然后在 _Layout.cshtml 页面中增加如下两行命令.

@using StackExchange.Profiling@addTagHelper *, MiniProfiler.AspNetCore.Mvc

最后需要在 WebPage 中指定 MiniProfiler 分析窗口应该显示的位置,那如何做呢? 在 body 标签内使用 mini-profiler 标记,如下代码所示:

<mini-profiler position="@RenderPosition.Right" max-traces="5" />

在 ASP.Net Core MVC 中使用 MiniProfiler 。

MiniProfiler 会提供 页面加载时间 和 数据库查询性能指标,接下来把程序跑起来,你会看到如下的性能指标图.

在 ASP.Net Core 中使用 MiniProfiler的方法

有些朋友可能就要问了,大体时间我是知道了,那如果我只想获取某一指定代码块的执行时间呢? 当然也是可以的,下面的代码展示了如何去实现.

 public class HomeController : Controller  {    ILogger<HomeController> logger;    public HomeController(ILogger<HomeController> logger)    {      this.logger = logger;    }    public IActionResult Index()    {      var miniProfiler = MiniProfiler.Current;      List<Author> authors = new List<Author>();      miniProfiler.RenderIncludes(this.HttpContext);      using (miniProfiler.Step("Get Authors"))      {        authors.Add(new Author() { Id = 1, FirstName = "Joydip", LastName = "Kanjilal", Address = "Hyderabad, India" });        authors.Add(new Author() { Id = 2, FirstName = "Stephen", LastName = "Smith", Address = "NY, USA" });        authors.Add(new Author() { Id = 3, FirstName = "Anand", LastName = "Narayanan", Address = "Chennai, India" });        authors.Add(new Author() { Id = 4, FirstName = "Steve", LastName = "Jones", Address = "London, UK" });      }      return View(authors);    }  }  public class Author  {    public int Id { get; set; }    public string FirstName { get; set; }    public string LastName { get; set; }    public string Address { get; set; }  }

从上面的代码中可以看到,我用 using (miniProfiler.Step("Get Authors")) 做了语句块标记,理论上 mini-profile 窗口上应该有类似 Get Authors 指标栏,接下来把程序跑起来,一起来看看效果.

在 ASP.Net Core 中使用 MiniProfiler的方法

除了顺向操作,你也可以指定让某些代码块不要显示在 mini-profile 中,需要做的是调用 Ignore() 即可,如下代码所示:

using (MiniProfiler.Current.Ignore()){ // Write code here that you don"t // want MiniProfiler to profile}

使用 MiniProfile 分析 ADO.NET 查询

除了做一些常规的页面分析,还可以直接对 ADO.NET 查询性能进行分析,这就 。

最后此篇关于在 ASP.Net Core 中使用 MiniProfiler的方法的文章就讲到这里了,如果你想了解更多关于在 ASP.Net Core 中使用 MiniProfiler的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com