Promit's Ventspace

August 13, 2009

SlimTune Profiler 0.1.5 Released!

Filed under: SlimTune — Promit @ 3:10 pm
Tags: , , , , ,

Let’s recap. For about two months now, I’ve been working on a brand new profiling tool for .NET, C#, CLR, and all that jazz. It’s open source, completely free, and supports frameworks 2.0 and later (no 1.x, sorry). Some of the notable features include remote profiling, real time results analysis, and multiple visualizers. Today, the first public release, version 0.1.5, is available to the public.

Project Homepage
Direct Link to Installer

Although this is still an early version, it is already quite capable. It supports sampling mode profiling for both x86 and x64 applications, and provides views that will be familiar to users of NProf or dotTrace. Speaking of NProf, it’s my belief that this completely replaces it for .NET 2.0+, with a better UI and more features too. (And a far more lenient source code license as well.) There is still a lot to come, of course, but with this release I finally feel that this is ready for the general public.

I’m looking forward to getting lots of feedback, both positive and negative, and I hope that this is a useful tool for everyone.

(P.S. If you want to build from source, you’ll need to do it with a non-express version of VC++ 2008 SP1 and VC# 08, with a full boost installation. Also install the SQL Server Compact redist, which is in the repository under trunk\install\ExtraFiles.)



  1. I’m going to be real dense here (and I expect you have a user guide on the way) but, how do you connect to an application? I’ve got a VS2005 console app running but when I click connect it just says “the server actively refused it”.

    Comment by jimbobmcgee — August 14, 2009 @ 6:00 am | Reply

    • It can only connect to apps that have been run via the Run command, which causes the profiler backend to be loaded into the process. Unfortunately there’s no way to do this after the fact; that’s just how CLR is designed.

      Comment by Promit — August 14, 2009 @ 9:48 am | Reply

      • Ahh I see. I completely missed the Profiler > Run menu option (knew I being was dense).

        I guess that means that I can’t profile ASP.NET apps with it, which is a shame, as I do a lot more web-based stuff than Windows-based.

        Any plans to extend this to ASP.NET apps? Is it even possible?

        Comment by jimbobmcgee — August 14, 2009 @ 11:01 am | Reply

      • ASP.NET is not supported yet, sadly. I do plan to support it just as soon as I figure out how. Same goes for services. Working on finding out right now actually.

        Comment by Promit — August 14, 2009 @ 11:17 am | Reply

  2. […] Promit Roy hat gestern eine erste Version seines .Net-Profilers SlimTune veröffentlicht. Das Tool unterstützt .Net >2.0, Remote Profiling, Real-Time Resultate und zwei Darstellungsmöglichkeiten, die sich an den Programmen dotTrace und NProf orientieren. […]

    Pingback by SteveKr.devBlog » SlimTune Profiler 0.1.5 — August 14, 2009 @ 6:24 am | Reply

  3. Excellent work! Just have to say that you just made my day. I have been looking for something like this for quite a while!

    You are the man! Keep up the good work, on both your Slim projects!

    Comment by Someone — August 17, 2009 @ 3:24 pm | Reply

  4. Very nice. Look forward to seeing where you go with this tool. Thank you!

    Comment by BenC — August 18, 2009 @ 9:26 pm | Reply

  5. Sounds very nice! Not being able to test it out at the moment, any idea if/how this will work with, let’s say, the Unity engine (

    Comment by Trond — August 19, 2009 @ 1:49 pm | Reply

  6. Great start. Very useful. Keep up the good work!

    Comment by Brian Guilfoos — August 25, 2009 @ 9:09 am | Reply

  7. Nice work. Seems to work well. Any chance to access the database schema ?

    Comment by Snoir — August 31, 2009 @ 8:33 am | Reply

  8. The file can be openend in Visual Studio. However, the Timings table is empty… So sad.

    Comment by Snoir — August 31, 2009 @ 9:02 am | Reply

    • Timings was a test table for instrumentation, and doesn’t get any data in the release. Callers and Samples hold the actual sampling data, and then there’s Function and Classes that provide names, signatures, etc.

      Comment by Promit — August 31, 2009 @ 9:08 am | Reply

      • Thanks for the tip!
        I can’t find the timing info, though. Is it stored somewhere in the database?

        Comment by Snoir — August 31, 2009 @ 9:15 am | Reply

      • Since it’s sampling only right now, there’s no timing. The only available parameter is the hit count.
        Samples: This is how many samples the function appeared in, not double counted. IOW, it’s time inclusive.
        Callers: Records how many times a particular caller-callee pair showed up, and is double counted. 0 is recorded for callee at the top of stack, and caller at bottom of stack.

        The percentages are just compiled from those two tables.

        Comment by Promit — August 31, 2009 @ 9:20 am | Reply

  9. Thanks for this – looks promising! I will be watching and waiting for ASP.NET support.

    Comment by Chris — November 4, 2009 @ 3:11 pm | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at

%d bloggers like this: