Gentoo and Xine dev (and part-time "Amarok Helper") Diego wrote an
interesting blog about memory usage. Or, at least interesting to folks like me who somewhat regret never having had a operating systems class. He discovered that any Xine client (which includes Dragon Player or any KDE4 app that makes a sound) wastes 1.7mb of RAM thanks to libvorbisenc.
Using his cowstats script, I profiled Dragon Player:
File name | .data size | .bss size | .data.rel.* size
src/app/CMakeFiles/dragon.dir/playDialog.o 0 1 0
src/app/CMakeFiles/dragon.dir/videoWindow.o 0 17 0
src/app/CMakeFiles/dragon.dir/mainWindow.o 0 17 0
src/app/CMakeFiles/dragon.dir/actions.o 0 1 0
src/app/CMakeFiles/dragon.dir/playlistFile.o 0 1 0
src/app/CMakeFiles/dragon.dir/fullScreenToolBarHandler.o 0 1 0
src/app/CMakeFiles/dragon.dir/stateChange.o 0 1 0
src/app/CMakeFiles/dragon.dir/theStream.o 8 9 0
src/app/CMakeFiles/dragon.dir/fullScreenAction.o 0 1 0
src/app/CMakeFiles/dragon.dir/main.o 0 8 0
Not too shabby.
Also not so important, Dragon Player isn't a library. I just profiled libamarok which is loaded by all the various Amarok plugins so potentially could be an issue. It had 46k copy-on-write sections total, but out of the dozens of files 40k is a variable in the crashhandler, which is a kind of scary piece of code since it has to work while the rest of Amarok is crashing. So I'll let someone else work on that.