Mirror of Ardour Source Code
Find a file
Tim Mayberry 816f3bfb36 Use std::vector::reserve to improve performance of adding properties
The number of properties per node roughly corresponds to the number of members
of the class the node is representing and should be fairly low.

Use std::vector::reserve to prevent reallocation on insert for most node types,
there are exceptions like Region(~40 properties).

This seems worth it as part(maybe 1/10th of the total time) of saving a Session
is a combination of what occurs in "Create" and "Write" in this test.

Perf results before changes:

XMLTest::testPerfMediumXMLDocumentTiming
   Create : Count: 10 Min: 30610 Max: 42656 Total: 376672 Avg: 37667 (37 msecs)
   Write : Count: 10 Min: 42804 Max: 54277 Total: 460455 Avg: 46045 (46 msecs)
   Read : Count: 10 Min: 70364 Max: 85484 Total: 750909 Avg: 75090 (75 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
   Create : Count: 10 Min: 164360 Max: 356995 Total: 3064482 Avg: 306448 (306 msecs)
   Write : Count: 10 Min: 308655 Max: 372953 Total: 3226707 Avg: 322670 (322 msecs)
   Read : Count: 10 Min: 517243 Max: 541839 Total: 5289950 Avg: 528995 (528 msecs)

Perf results after changes:

XMLTest::testPerfMediumXMLDocumentTiming
   Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs)
   Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs)
   Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
   Create : Count: 10 Min: 154486 Max: 307856 Total: 2678989 Avg: 267898 (267 msecs)
   Write : Count: 10 Min: 304273 Max: 343274 Total: 3169158 Avg: 316915 (316 msecs)
   Read : Count: 10 Min: 496920 Max: 541394 Total: 5260410 Avg: 526041 (526 msecs)
2016-10-10 08:45:34 +10:00
cfgtool prepare for update to waf 1.8 2016-02-28 21:16:44 +01:00
doc remove and ignore intermediate generated documentation files 2016-04-12 13:55:09 +02:00
export Remove Soundcloud export format presets 2014-05-23 19:05:33 +01:00
gtk2_ardour Interpret start & length_beats properties as double rather than Evoral::Beats. 2016-10-10 03:39:57 +11:00
headless prepare for update to waf 1.8 2016-02-28 21:16:44 +01:00
libs Use std::vector::reserve to improve performance of adding properties 2016-10-10 08:45:34 +10:00
mcp add MCP device file for Nucleus-via-platform MIDI 2016-02-18 20:28:56 -05:00
midi_maps Akai MIDIMix map -- Squashed commit of the following: 2016-10-04 21:58:47 +02:00
msvc_extra_headers When building with MSVC some of the header file stuff is only relevant in early versions (e.g. VC8) 2016-09-30 08:24:51 +01:00
MSVCardour3 Accommodate a header file that's been moved from gtk2_ardour into libardour 2016-09-30 08:21:37 +01:00
MSVCMixbus3 When building with MSVC make sure any backends / panners etc get copied to the correct target folder 2015-01-12 14:43:22 +00:00
MSVCvst_scan Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format 2016-08-30 07:15:00 +01:00
osc OSC: Add preset loading to OSC GUI 2016-08-24 10:07:21 -07:00
patches patches to fix notebook tab tearoff on DnD. 2015-07-20 16:56:15 -04:00
patchfiles Improve midnam for Waldorf Blofeld 2016-08-05 22:03:11 +02:00
scripts Interpret start & length_beats properties as double rather than Evoral::Beats. 2016-10-10 03:39:57 +11:00
session_utils Interpret start & length_beats properties as double rather than Evoral::Beats. 2016-10-10 03:39:57 +11:00
templates NOOP, remove trailing whitespace, replace tabs in python scripts 2015-11-29 17:54:31 +01:00
tools libqm-dsp is now a static library 2016-10-08 17:04:49 +02:00
vst fix vamp path: 2016-06-25 00:44:04 +02:00
.dir-locals.el Only use .dir-locals.el to set tab indentation (or not, for python). 2011-04-06 16:33:43 +00:00
.gitattributes disable git-archive 2016-07-06 03:12:19 +02:00
.gitignore remove and ignore intermediate generated documentation files 2016-04-12 13:55:09 +02:00
ardour-3.ttl Fix syntax error. 2009-11-09 14:13:59 +00:00
ardour.1 add -a option to ardour.1 manpage 2013-03-12 13:32:56 -04:00
ardour.1.es
ardour.1.fr convert French man page from ISO-8859-1 to UTF-8 encoding 2016-03-08 08:39:58 -05:00
ardour.1.ru convert Russian man page from KOI8-R to UTF-8 encoding 2016-03-08 08:39:58 -05:00
COPYING update GPL (formatting and update FSF address) 2014-10-26 02:24:35 +01:00
foo.cc more pre-commit testing 2015-05-09 13:08:56 -04:00
instant.xml
instant.xml.sae
Makefile (FULL) not-yet-complete JACK session management patch (TODO: get program name, vary snapshot name, arrange quit when necessary) 2010-04-02 18:54:33 +00:00
msvc32-fixup.pl When building with MSVC, adapt the various font sizes to be a closer match to the GCC build 2016-06-23 15:20:03 +01:00
PACKAGER_README fixes for various consistency/settings issues in monitor section; minor edit to PACKAGER_README 2010-03-17 16:01:58 +00:00
README another trivial change to test hooks 2013-03-13 14:35:39 -04:00
system_config merge source-defaults into system-config file 2016-08-09 22:13:59 +02:00
testfile.flac ogg/flac support bits and pieces; fix up MIDI note dragging and front-edge trims; BROKEN IN PERCUSSIVE MODE FOR NOW 2009-10-06 22:07:10 +00:00
testfile.ogg ogg/flac support bits and pieces; fix up MIDI note dragging and front-edge trims; BROKEN IN PERCUSSIVE MODE FOR NOW 2009-10-06 22:07:10 +00:00
TRANSLATORS Fix the reference to i18n_po, fix Paul's second name 2016-06-10 20:28:43 +02:00
waf patch waf - fixes clang/linux compilation 2016-02-28 21:48:49 +01:00
wscript allow linking unbundled version of qm-dsp 2016-10-04 22:03:28 +02:00

Please see the Ardour web site at http://ardour.org/ for all documentation..

For information on building ardour: 
      
     http://ardour.org/development.html