SlimTune Profiler 0.1.5 Released!

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.)

17 thoughts on “SlimTune Profiler 0.1.5 Released!

  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”.

    1. 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.

      1. 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?

      2. 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.

  2. 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!

  3. 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 (www.unity3d.com)?

    1. 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.

      1. 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.

Leave a comment