Profiling

The second package I recommend that developers install into any ASP.NET MVC application is the MiniProfiler (http://miniprofiler.com/) set of packages. Once installed and properly configured, MiniProfiler adds a little widget to every page on your site when running in localhost. You can find it in the top-left corner, as shown in Figure 16.5.

Click on the widget and you'll get profiling information for the current page. For example, Figure 16.6 shows that the search page for the NuGet Gallery runs two SQL queries. You can also see timing information for the queries, as well as timing information for certain key points in the request life cycle, such as rendered views and partial views.

Code that uses Entity Framework, an ORM, can make it difficult to know exactly what SQL is generated and run against the database. MiniProfiler exposes that information. Simply click on the “sql” links to see the generated SQL, as well as the containing method, as shown in Figure 16.7.

To set this up for an ASP.NET MVC application with Entity Framework, install MiniProfiler, MiniProfiler.EF, and MiniProfiler.MVC. After installing the package, there's ...

Get Professional ASP.NET MVC 4 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.