mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-24 07:27:44 +01:00
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) |
||
|---|---|---|
| .. | ||
| boost-debug | ||
| macosx | ||
| msvc | ||
| MSVCpbd | ||
| pbd | ||
| test | ||
| base_ui.cc | ||
| basename.cc | ||
| boost_debug.cc | ||
| cartesian.cc | ||
| ChangeLog | ||
| cocoa_open_uri.mm | ||
| command.cc | ||
| configuration_variable.cc | ||
| controllable.cc | ||
| convert.cc | ||
| COPYING | ||
| cpus.cc | ||
| crossthread.cc | ||
| crossthread.posix.cc | ||
| crossthread.win.cc | ||
| debug.cc | ||
| debug_rt_alloc.c | ||
| demangle.cc | ||
| enums.cc | ||
| enumwriter.cc | ||
| epa.cc | ||
| error.cc | ||
| event_loop.cc | ||
| ffs.cc | ||
| file_archive.cc | ||
| file_utils.cc | ||
| fpu.cc | ||
| gettext.h | ||
| id.cc | ||
| libpbd.pc.in | ||
| libpbd.spec.in | ||
| locale_guard.cc | ||
| localtime_r.cc | ||
| malign.cc | ||
| md5.cc | ||
| mountpoint.cc | ||
| openuri.cc | ||
| pathexpand.cc | ||
| pbd.cc | ||
| pool.cc | ||
| property_list.cc | ||
| pthread_utils.cc | ||
| reallocpool.cc | ||
| receiver.cc | ||
| resource.cc | ||
| run-tests.sh | ||
| search_path.cc | ||
| semutils.cc | ||
| shortpath.cc | ||
| signals.cc | ||
| stacktrace.cc | ||
| stateful.cc | ||
| stateful_diff_command.cc | ||
| strreplace.cc | ||
| strsplit.cc | ||
| system_exec.cc | ||
| textreceiver.cc | ||
| timer.cc | ||
| timing.cc | ||
| tlsf.cc | ||
| transmitter.cc | ||
| undo.cc | ||
| uuid.cc | ||
| whitespace.cc | ||
| windows_mmcss.cc | ||
| windows_special_dirs.cc | ||
| windows_timer_utils.cc | ||
| wscript | ||
| xml++.cc | ||