MiniProfiler v3.0.10-beta1 Released

I have been a big fan of MiniProfiler since soon after its initial release, so soon after I joined Stack Exchange (2013-10), I made an effort to try to get involved with the development work. Lots of work had been completed already by Jarrod Dixon, Marc Gravell, Matt Jibson, Sam Saffron, Nick Craver and the other members of the team to get MiniProfiler to version 3, and this has been in use for a number of months already on the Stack Exchange sites (including Stack Overflow). A few items remained on the ToDo list before the new version could be released on nuget, and I volunteered to work on these. All of the remaining items have now been completed and a few minutes ago I pushed the new 3.0.10-beta release up to

Note: if you are going to install the pre-release beta nugets, be sure to include “-pre” in your command: PM> Install-Package MiniProfiler -Pre

Release Notes:

  • First public nuget release of v3.0
  • Includes new nuget package updates:
  • CustomTiming replaces SqlTiming as the general timing storage. Sql is now just one case. More adaptable for different timing types.
  • Lots of bug fixing, performance enhancements
  • Move from the old location to here.
  • SqlServerStorage is rewritten to use different tables, corresponding to new CustomTiming approach. If you used SqlServerStorage in v2.0 this is a breaking change. In this case be sure to see the newtable creation script
  • Add MultiStorageProvider as new option for being able to designate multiple storage locations.
    • Will store in all listed, retrieve from the first possible location where there is a match
    • Implements IStorage so it can be set for the session using MiniProfiler.Settings.Storage, or for the individual request.
    • Set MiniProfiler.Current.Storage to any IStorage (including MultiStorageProvider) to customize the storage for any single request (example)
  • New nuget for Entity Framework 6. Initialize in with MiniProfilerEF6.Initialize();
  • Updated for newest versions of SqlCe and SqlLite

I also just updated the site to include up to date information (based on the new release) on nugets and basic usage, and changed up the UI a tiny bit (now using Bootstrap).

Issues and Pull Requests are welcome on GitHub, and any feedback is also welcome on the community site.

Memory Profiler Eating Up My Memory

I have a Windows Forms app that has a very long and complicated initialization process. As the release is approaching, today was my day to try and shoft things around in the init, get it loading faster. So on recommendation from a few sources, I downloaded a profiler – Jet Brains dotTrace. Install and first profile went well. However, as I started to make more changes and run more profiles, I noticed that there were no improvements in initialization time. If anything, things were getting worse. Task Manager helped pinpoint the culprit:

If the numbers are too small, that is 1,241,596 KB. Yikes. Compare that with the second and third-place contestants, FireFox 3 at 174,584 KB, Visual Studio 2005 at 144,940 KB.

This is what happened after I closed the profiler (see if you can guess when that happened):

And I thought that Firefox 2 was using a lot of memory. I know that these programs are complicated, but I find it hard to comprehend how a program is supposed to help you track the memory usage of the applications that you are debugging when it ends up gobbling down over 1.2GB of RAM all by itself and making the computer basically unusable.