This is very cool... It would be interesting to test
this on a big wiki
with big objects.
Curriki would probably be a very nice target of this patch.
Ludovic
Caleb James DeLisle wrote:
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.
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs