Wednesday, August 12, 2009

Music Player Review: CPU Performance


This old review has been migrated to my new website:
http://bryanquigley.com/planet-ubuntu/music-player-review-cpu-performance

You can also check out this more recent Ubuntu 12.04 based CPU performance chart here:
http://bryanquigley.com/reviews/12-04-music-player-review-cpu-usage

16 comments:

gordallott said...

Its interesting to note the difference between banshee and rhythmbox, given that they both use the same underlying gstreamer backend for decoding. So the cpu differences should be just left to whatever each program is doing separate from that.

Its hard not to look at mono being the problem

weboide said...

Thank you for this very interesting post ! Even though some people might not like this kind of post, I really think you should feel free to post more if you wish to!
I'm a rhythmbox-everyday-user and I'm really happy with it except for the memory comsumption (I'm developing my own lightweight media player daemon now). On the other hand, CPU consumption (as we can see here) is indeed very low.

directhex said...

@gordalott

More interesting is Exaile. Since it uses the same underlying gstreamer backend for decoding as Banshee, can I use it as conclusive evidence that Python is a major problem?

gQuigs said...

I was not trying to compare Mono vs C vs Python. I just included them for those that might be interested, and I was trying to find a pattern as well. I didn't find one.

The language does choose some of what you will get performance wise, but how you write it matters more. Just look at Exaile vs Quod Libet, both Python apps.

Anonymous said...

hey there,
i just wanted to note that in your reviews you sometimes write "gmusicplayer" instead of "gmusicbrowser". i find that somehow confusing and thought maybe others do too, so i thought i'd mention it.

other than that i can only confirm gmusicbrowsers low cpu usage (with the mplayer backend; with gstreamer it's a different story) and especially like the fact that the user can choose the backend (mpg321,gstreamer,mplayer,icecast).

Anonymous said...

How does MPD perform? I am really curious as I would hope that should be the lightest solution.

sidi said...

Could you please let us know about the results you get with Exaile 0.3.0 alpha 3 under the same testing conditions ? I didn't run tests but I know some commits were about CPU usage improvements :)

Anonymous said...

"How does MPD perform? I am really curious as I would hope that should be the lightest solution."

+1!

reacocard said...

Exaile 0.2.14 is old and has some very inefficient code in it. Exaile 0.3.0 which is due out very soon is a complete rewrite that improves performance and functionality in many aspects of the player, and it is this version that Xubuntu is considering moving to. I would be most interested if you could compare the latest alpha of 0.3.0 as well, since it is a better indicator of exaile's current and future performance. Python itself is generally not a speed limiter - quod libet is also written in python and performs (apparently) much better than 0.2.14.

gQuigs said...

The Exaile Beta (from Exaile PPA) performed worse in the tests I just ran. Please do try it out for yourself.

insulae said...

gQuigs the future Exaile 0.3.0 (i am using v0.2.99.2+) is worse than exaile 0.2.14?.
this is a bad news :(.

gQuigs said...

@insulae:
I am using 0.2.99.3.

I'm not sure the best way to test MPD, cause it really isn't fair cause it doesn't have a GUI to update. :P

Please, if you want to do your own more detailed test, grab a copy of phoronix test suite (included in Jaunty) and run the command in my article. It also has a lot more functionality :).

Thanks!

reacocard said...

I couldn't get the phoronix test suite to work (version in gentoo is old and didn't appear to save data properly), but I did run some basic tests of my own on Exaile 0.3.0 vs Exaile 0.2.14 vs Quod Libet. I measured cpu time (via htop) before and after playing one 4-minute FLAC file, and subtracted one from another to get the amount used during actual playback. The results:

9.90 - Exaile 0.3.0 bzr
9.36 - Exaile 0.2.14
8.07 - Rhythmbox 0.11.6
7.47 - Quod Libet 2.1

So 0.3.0 is only about 5% more intensive than 0.2.14. Clearly plenty of room for improvement in future versions, but not a big difference from the past.

(note: i did not test banshee because it does not, so far as i can tell, have any easy way to play just one file and then stop)

Anonymous said...

I do find the test interesting, however - but that's my hearing and my system - I found Rhythmbox performing poorly when I play my audio files. The more dynamic is Exaile (could the high CPU usage related?) then Quod Libet. With the former CPU usage average is about 70%, with the later 50%

Anonymous said...

Let's see Songbird! Sure to be heavy on resources but it's still interesting.

Drew said...

Thanks for the comparisons, very interesting to see the difference.

Was Amarok ver. 1.4 or 2.x? Also curious what Listen would come in at (if it is still being developed)