New 5.5-xml-perf branch
Tim Mayberry <[email protected]> Mon, 3 Oct 2016 20:48:17 +1000
| Newsgroups | gmane.comp.audio.ardour.devel |
|---|---|
| Message-ID | <CAM2edBgpiJGcxZOiPfVAXr3+5zREc=v8jhgR3wBC=_2TsSJenQ@mail.gmail.com> |
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 case 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 allows 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 used for property lookup has been removed as it wasn't helping performance. Testing with a real Session yields less impressive improvements as there is a lot of other stuff going on, but with my test Session(7.8MB) it improves load time by ~13% and save time by ~5%. Once you factor in all the stuff happening 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. Tim _______________________________________________ ardour-dev mailing list [email protected] http://lists.ardour.org/listinfo.cgi/ardour-dev-ardour.org