Posts

Showing posts from May, 2010

SoundConverter 1.5.0

Image
Haaaa. Finally a few days of full time work on SoundConverter, so I can launch the 1.5.0 version. We now have a fully asynchronous core. The old task manager was polling, a reminisent of good old gstreamer 0.8 era, causing tasks faster than 10ms to wait. And the results are awesome, just take a look at my little benchmark bellow: And that's only numbers. Try it to see the difference. As a bonus, multithreading is also much faster with the new version. And don't ask for the 1.4.4 results with 16GB of sound files, the test wasn't able to finish without crashing. While investigating on a crash with a friendly user, I remarked the huge amount of memory used by SoundConverter. And just to load tags! I never used it with lots of files at the same time, but this had to be fixed. I tracked down every byte allocated to remove all the unnecessary ones. To my surprise, I was storing all tags passed by gstreamer (even embedded pictures), when we only use a few ones to build file...

Pygtk leaks memory when using signals

Be careful when using connect(): gobject will keep a reference to the callback,  preventing your object to be destroyed. You must call disconnect() to be sure the memory is freed. It doesn't matter when you have only a few objects, but when you are creating thousands of objects... @see: http://stackoverflow.com/questions/1364923/how-to-connect-to-a-gobject-signal-in-python-without-it-keeping-a-reference-to-t