Monday, May 18, 2009

Tomboy 0.14.2 Released - 25% Faster Start-Up!

"Running Shep", Copyright Ellery Armstrong, Milk Teeth Photography, Used With Permission


Last week we released Tomboy 0.14.2, a new stable release with a lot of fixes cherry-picked from the development branch. We remedied a couple of crashes, squashed some weird errors and behavior, and we even improved memory usage and start-up performance. Here are the highlights:
  • Start Tomboy in 25% less time
  • Fix random start-up crash on distros like Ubuntu 9.04
  • Recognize presence of FUSE when built into kernel (not as module)
  • Fix error when opening New Note Template on Ubuntu 9.04
  • Stop seeing "this/that/other" as a file link (whoops!)
  • Don't crash when opening invalid or improperly-formatted notes
  • Better error-reporting on Windows
  • Updated cross-platform documentation
  • Updated translations

This start-up performance fix was also in 0.15.0, but I didn't realize how significant it was until after I'd already announced it. We found that this simple fix saved us around 25% on Tomboy start-up. On my system, start-up time was cut from 4 seconds to 3 seconds (these are warm starts, I did not have time to test cold starts).

These traces were created using Ruben's patch and Federico's graphing tool. You can click them to see the full graphs (note that apps run slower with tracing turned on). Compare the numbers for setting up our AddinManager in 0.14.1...


...versus the new numbers for 0.14.2...



The funny thing is, all I did was change a couple of lines in our Mono.Addins initialization code to reflect the latest recommendations of the maintainer.

This "free" boost isn't even part of the low-hanging fruit I keep talking about when it comes to Tomboy performance optimizations. I'm working on another fix that should cut down on memory consumption, too, and you should expect performance improvements in every release this cycle. If you would like to help us set up an automated way to track memory usage and start-up time in Tomboy, that would be an awesome contribution. :-)

Following the GNOME schedule, our next development release, Tomboy 0.15.1, is scheduled for May 25. Stay tuned for some exciting announcements!

This post brought to you by the Tomboy Blogposter add-in.

10 comments:

Anonymous said...

Sounds like GNote was a net win for TomBoy after all, I've never seen such a storm of TomBoy feature and preformance improvements as the last few weeks. Maybe a little bit of competition wasn't so bad...

Anonymous said...

Of course we could ask - what if the developer resources from GNote worked on Tomboy... but I realize Open Source doesn't scale like commercial software as you can't focus people that way

Sandy said...

@Anonymouses: So it's funny, all of this stuff was in the pipeline anyway, because last cycle we started gaining more contributors. I don't magically have more time because of GNote, but what I do have is an increased motivation to blog what we're doing.

We actually have a lot of parallelizable work in Tomboy, so right now we can scale to more developers without much trouble.

Anonymous Coward said...

ahhhh...the fear of GNote makes miracles!

Marcos said...

I never used a note tool, but this one is suprising me. :D

Really liking Tomboy.

Marcos

Sandy said...

@Marco Thanks! Glad it's working out for you. :-)

Anonymous said...

I'm glad you are blogging about it more... I like Tomboy and hearing where it is going

[Although admittedly I haven't built a nice workflow around it, it's more just a mind dump's, but that's more about me than the tool. It would be nice if it had OneNote style flags/checkboxes and summarized todo lists]

yoni said...

Can you share what that simple fix that improved the performance was??

Sandy said...

@yoni: http://git.gnome.org/cgit/tomboy/commit/?id=ea4a27042abcb8cfdfd09d187fa9a25ebbdb6673As you can see from the comment, the goal was to fix a problem with Mono.Addins on Windows. I knew it would also help start-up time, but did not realize how significant it would be.

@Anonymous: Those are good suggestions...personally I would love to be able to make checkbox lists in Tomboy that sync'd with corresponding tasks in Tasque (or EDS, or whatever). Patches welcome, of course...personally I'm focused on other features and fixes this cycle.

marcosroriz said...

@Sandy,

Thank You and the Tomboy community for making this cool app :D