Tim Mayberry
816f3bfb36
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_rt_alloc.c | ||
debug.cc | ||
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_diff_command.cc | ||
stateful.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 |