Next Step for SlimTune

Okay, it’s been a long time since I touched Tune. In fact I think I’m averaging one major blast of work just about every six months. That’s terrible, but I don’t really know what to do about it. I don’t have the bandwidth to run a company and two open source projects at once. Even my involvement with SlimDX is much weaker than it used to be. The difference is that DX has more very competent developers to take care of it; Tune is all on me.

All the same I am back and I’m working on improving the thing once again. It’s been long enough that I can’t remember exactly what the roadmap was or what I was trying to accomplish. (Protip: Write down your roadmaps, people!) That gave me an opportunity to step back and really examine what the state of Tune is. A lot of people were pulling for memory profiling support, which I had slated for 0.3.x and planned to start fairly soon. I no longer think that’s a good idea. It’s more in my (and hopefully your) interests to make the 0.2.x series as strong as possible.

The basic problem is that SlimTune is a really, really cool program with a very mediocre implementation. I still think the ideas in there blow away a lot of the commercial profiling tools out there. All the same, I’m one person and the code’s accumulated about eight weeks of full time work since its beginning (8*40 = 320 total man hours). It’s still a prototype. Before I can do any significant expansion of features, I first need to rebuild the foundation in a stable fashion. The database code is basically a complete loss. The UI is a rough draft. The backend is actually pretty solid, as far as I know, but it isn’t good with error reporting. Things just stop working sometimes.

This is stuff that needs to be tackled long before adding more features. That means I’m not going to see very many users soon, and that corporate adoption will be slow at best. I have several good friends on commercial products who need memory tracking, end of story. But honestly, I have a reputation of building quality work and it’s not casually earned.

In short, the next phase of development is to build the best damn sampling profiler out there.

5 thoughts on “Next Step for SlimTune

  1. Yeah for SlimTune! I’ve been using v0.2.1 regularly since it is out and was afraid the project was dead. Although as a user I’d love to see new features in, as a developer I understand the need for cleaning up the code base. If that’s what it takes to make SlimTune even better in future releases, it’s worth it.

    If you need any testing done, I’m volunteering again.

    1. Well you’ll still be seeing dramatic improvements as a user, just in stability and usability than actual core profiler features. And I don’t want to deal with any more of these stupid database bugs.

  2. A word of advice, dont get too hung up on a clean architecture etc etc. On the other hand dont make miss chances to improve things.

    ie I think a complete re-write of the UI and database stuff would be a mistake.

    Instead, redo such things when there is a feature type reason to do so. eg you need increased flexibility in order to add thread or memory profiling etc, at that point choose a design similar to the current one, but in the right direction to a ‘clean’ design as well.

    1. Don’t worry, I’m not that trapped in architectural obsessions. The database code is a catastrophe because it makes writing visualizers incredibly difficult, which in turn makes improving the UI very difficult — the queries are just too fragile. I spent the weekend integrating NHibernate with the existing database code, so visualizers can now use the much more robust NH queries without breaking anything. And everything that was already there still works.

      All I’m saying is, I’ve got this 🙂

  3. Do you want a hand with this? I think there’s potential here to integrate with other web site tooling and hosting services.

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s