My loader is able to load every page in my copy of XE and they all pass the .equals( test
against
the same page loaded by the default loader so I feel that I'm ready to publish some
tests.
These are time results (in milliseconds) for loading a page containing 1000 comments.
see:
http://jira.xwiki.org/jira/browse/XWIKI-2874
My test script runs the tests 30 times interchanging old loader and new.
These tests were all the first call to a newly started server, you can see it speed up
as the code is jit compiled.
Conclusion:
850% improvment can be expected for loading a page with 1000 comments.
StringListProperty and LargeStringProperty being mapped to the same column costs about
100ms for the workaround, disabling this workaround brings it to an even
1000% speed increase.
Disabling custom mapping saves a whopping 8ms. This surprised me.
My loader is only marginally faster at loading all of the pages in XE, it is best
at scaling with lots of objects. This didn't surprise me.
The actual test results are below.
Caleb James DeLisle
test1:
no special optimizations.
Old loader ===================== New Loader
11835ms. ===================== 2875ms.
7776ms. ===================== 771ms.
6827ms. ===================== 684ms.
6652ms. ===================== 405ms.
4406ms. ===================== 348ms.
3790ms. ===================== 363ms.
3482ms. ===================== 288ms.
3431ms. ===================== 965ms.
3173ms. ===================== 295ms.
3029ms. ===================== 271ms.
3714ms. ===================== 278ms.
3017ms. ===================== 285ms.
3828ms. ===================== 271ms.
2907ms. ===================== 285ms.
2845ms. ===================== 258ms.
2884ms. ===================== 275ms.
2829ms. ===================== 276ms.
2871ms. ===================== 256ms.
3638ms. ===================== 285ms.
2797ms. ===================== 295ms.
old loader's average: 4284.6ms.
new loader's average: 501.4ms.
test2:
this is with the LargeString/StringList workaround disabled.
Old loader ===================== New Loader
11494ms. ===================== 1541ms.
8916ms. ===================== 902ms.
7209ms. ===================== 639ms.
5584ms. ===================== 365ms.
4649ms. ===================== 324ms.
3700ms. ===================== 275ms.
3454ms. ===================== 282ms.
3391ms. ===================== 258ms.
3875ms. ===================== 260ms.
3087ms. ===================== 260ms.
3714ms. ===================== 342ms.
3012ms. ===================== 279ms.
3045ms. ===================== 1109ms.
3012ms. ===================== 242ms.
2873ms. ===================== 244ms.
2863ms. ===================== 247ms.
2880ms. ===================== 257ms.
2842ms. ===================== 276ms.
3667ms. ===================== 255ms.
2881ms. ===================== 259ms.
old loader's average: 4305.3ms.
new loader's average: 430.8ms.
test3:
LargeString/StringList workaround & custom mapping disabled.
Old loader ===================== New Loader
11813ms. ===================== 1465ms.
7984ms. ===================== 853ms.
6819ms. ===================== 602ms.
6182ms. ===================== 373ms.
4609ms. ===================== 320ms.
3749ms. ===================== 280ms.
3484ms. ===================== 309ms.
3348ms. ===================== 269ms.
3797ms. ===================== 263ms.
3119ms. ===================== 257ms.
3733ms. ===================== 327ms.
3044ms. ===================== 274ms.
2985ms. ===================== 1086ms.
2864ms. ===================== 239ms.
2888ms. ===================== 265ms.
2854ms. ===================== 262ms.
2836ms. ===================== 264ms.
2835ms. ===================== 269ms.
3653ms. ===================== 241ms.
2843ms. ===================== 247ms.
old loader's average: 4269.8ms.
new loader's average: 423.2ms.