[Ardour-Dev] New 5.5-xml-perf branch

Tim Mayberry mojofunk at gmail.com
Mon Oct 3 03:48:17 PDT 2016

I've pushed a branch to origin called 5.5-xml-perf that I intend to push to
master in a few days.

The branch is an result of reviewing the pbd/xml++ code and noticing a few
things that could be improved and realized I should probably write a test
so I didn't break anything. The result is an increase in the performance for
parts of the pbd/xml++.h API.

The test case in pbd/tests generates three xml documents of different sizes
that are roughly Session file like to measure the performance timing
differences as a result of the changes. I did it this way as I didn't think
adding a 10-20MB Session file to the repository was a good idea and it
measurement of the sort of allocation patterns we have in Ardour when
constructing an XML document.

The results of running the test case in the branch vs master with optimized
builds yields:

40% reduction in "Create" time(50% in debug build)
Write time is about the same
20% reduction in "Read" time(35% in debug build)

There is also a reduction in memory usage as the map in XMLNode that was
for property lookup has been removed as it wasn't helping performance.

Testing with a real Session yields less impressive improvements as there is
lot of other stuff going on, but with my test Session(7.8MB) it improves
time by ~13% and save time by ~5%. Once you factor in all the stuff
in the GUI when loading a Session it probably isn't going to be noticable.

Any feedback on the branch/testing is welcome but I don't expect there to be
any issues.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ardour.org/pipermail/ardour-dev-ardour.org/attachments/20161003/b0086e84/attachment.html>

More information about the Ardour-Dev mailing list