13
0
livetrax/libs
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
..
appleutility
ardour Interpret start & length_beats properties as double rather than Evoral::Beats. 2016-10-10 03:39:57 +11:00
ardouralsautil
audiographer consistent VAMP includes 2016-10-03 05:13:12 +02:00
backends NetBSD ships with pollts(2) similar to Linux specific ppoll() 2016-10-04 22:17:49 +02:00
canvas Accommodate newly introduced source(s) in our MSVC project (cairocanvas) 2016-09-30 08:20:14 +01:00
clearlooks-newer 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
clearlooks-older
evoral SMF add support for type-0 files (count channels, not tracks) 2016-10-05 20:08:26 +02:00
fluidsynth 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
fst Make some functions which are needed for native VST support like snprintf() visible in FreeBSD. 2016-10-04 22:59:16 +02:00
gtkmm2ext manually revert b9cab93fb1 and remove associated code. 2016-09-29 12:01:50 -04:00
libltc 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
lua Lua binding for std::map<>::at() 2016-10-07 03:39:22 +02:00
midi++2 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
panners 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
pbd Use std::vector::reserve to improve performance of adding properties 2016-10-10 08:45:34 +10:00
plugins Revert "add debug info to a-fluidsynth" 2016-10-05 16:07:10 +02:00
ptformat 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
qm-dsp Allow 'qm-dsp' to build again with MSVC 2016-10-07 17:58:28 +01:00
surfaces fix some compiler warnings (from mingw) 2016-09-30 13:07:53 -04:00
timecode 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
vamp-plugins update/include Queen Mary Vamp plugin set 2016-10-06 00:58:16 +02:00
vfork