Miniprofiler in .net core

Bogdan Hatis
2 min readJan 15, 2023

MiniProfiler is a powerful performance profiling tool for .NET Core applications. It allows developers to easily identify and troubleshoot performance bottlenecks in their code by providing detailed information about the execution time of different parts of their application. In this article, we will discuss how to use MiniProfiler in a .NET Core application, and how it can help you improve the performance of your code.

Getting Started

The first step to using MiniProfiler in a .NET Core application is to install the MiniProfiler package from NuGet. You can do this by running the following command in the Package Manager Console:

Install-Package MiniProfiler.AspNetCore

Once the package is installed, you need to add the MiniProfiler middleware to the request pipeline in the Startup.cs file. This can be done by calling the UseMiniProfiler method in the Configure method, like so:

app.UseMiniProfiler();

You also need to configure the storage for the profiler’s data. This can be done by calling the UseStorage method on the MiniProfilerOptions object. By default, it uses an in-memory storage, but you can change it to use a different storage like SQL Server or MongoDB.

services.AddMiniProfiler(options => 
{
options.UseSqlServerStorage("connectionstring");
});

Profiling Your Code

Once MiniProfiler is configured, you can start profiling your code by using the Step method. This method allows you to create a new step in the profiler's timeline and measure the time taken for a specific piece of code to execute. For example, you can profile a database query like this:

using var profiler = MiniProfiler.Current.Step("SQL Query") 
// database query here

You can also profile a specific method like this:

public void MyMethod()
{
using var profiler = MiniProfiler.Current.Step("MyMethod")
// Method code here
}

Viewing the Results

Once you have profiled your code, you can view the results by visiting the /mini-profiler-resources/results endpoint in your application. This will display a detailed timeline of the different steps you have profiled, along with information about the execution time, memory usage, and other metrics.

It’s also possible to view the profiler results in the browser by adding ?profiler=true to the end of the browser's URL

Conclusion

MiniProfiler is a powerful tool that can help you identify and troubleshoot performance bottlenecks in your .NET Core applications. It’s easy to use and provides detailed information about the execution time of different parts of your code, allowing you to quickly identify and optimize performance issues. By using MiniProfiler, you can improve the performance of your code and deliver a better experience to your users.

Originally published at https://bogdanhatis.com on January 15, 2023.

--

--

Bogdan Hatis

Experienced developer, product manager and CTO with a demonstrated history of working in the information technology, services and fintech industry.