Toggle navigation
Log-in
Wiki Index
Page Index
User Index
Application Index
Home
About
XWiki's Concept
News & Blog
Roadmap
Releases Notes
References
License
Projects
XWiki
Extensions
Code Snippets
All projects
Documentation
Contribute
Get Involved
Development
Translations
Feedback
Support
FAQs
Community Support
Professional Support
Download
Try
Download
Try now
Home
Projects
XWiki Enterprise
Extensions
All projects
Documentation
Download
Try
Performance tests
Performance test on Jetty/HSQLDB with a single wiki between 5.4.6 and 6.4
Wiki source code of
Performance test on Jetty/HSQLDB with a single wiki between 5.4.6 and 6.4
Last modified by
Thomas Mortagne
on 2016/12/07 14:55
Hide line numbers
1: {{toc/}} 2: 3: = Environment = 4: 5: * Ubuntu 14.10 64b 6: * Quad core i7 7: * Oracle JDK 1.8.0_25 64b 8: * standard jetty+hsqldb 9: * only main wiki 10: 11: Unless specifically indicated otherwise all the test are executed with a fully initialized instance (core extensions don't run anymore, SOLR index is fully up to date, etc.). Basically except for a few special tests we are using an instance that already been started and run until the proc is flat for some time. 12: 13: = Summary = 14: 15: == Speed == 16: 17: |=(% colspan="2" %)Actions|=Difference 18: |(% colspan="2" %)[[Jetty startup>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HJettystartup"]]|(% style="color:green" %)Slightly better 19: |(% rowspan="2" width="150" %)[[First access>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HFirstaccess"]]|(% width="300" %)[[not existing page without UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HFirstaccesstonotexistingpagewithoutUI282Fxwiki2Fbin2Fget2FNoSpace2FNoPage29"]]|(% style="color:orange" %)Same 20: |[[not existing page with UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HFirstaccesstonotexistingpagewithUI282Fxwiki2Fbin2Fview2FNoSpace2FNoPage29"]]|(% style="color:red" %)x2 (most probably the LESS init) 21: |(% rowspan="4" %)[[Reload>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HReload"]]|[[not existing page without UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HReloadofnotexistingpagewithoutUI282Fxwiki2Fbin2Fget2FNoSpace2FNoPage29"]]|(% style="color:orange" %)Same 22: |[[not existing page with UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HReloadofnotexistingpagewithUI282Fxwiki2Fbin2Fview2FNoSpace2FNoPage29"]]|(% style="color:green" %)Slightly better 23: |[[Main.WebHome with UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HReloadofMain.WebHomewithUI"]]|(% style="color:green" %)Slightly better 24: |[[Main.WebHome without UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HReloadofMain.WebHomewithoutUI"]]|(% style="color:green" %)Slightly better 25: |(% rowspan="3" %)[[SOLR>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HSOLR"]]|[[Full SOLR reindex>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HFullSOLRreindex"]]|(% style="color:orange" %)Same 26: |[[SOLR sync when index is empty>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="Hwhenindexisempty"]]|(% style="color:orange" %)Same 27: |[[SOLR sync when there is nothing to do>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="Hwhenthereisnothingtodo"]]|(% style="color:orange" %)Same 28: |[[Rendering>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HRendering"]]|[[Page with 1000 macros without UI>>test:Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HPagewith1000macroswithoutUI"]]|(% style="color:green" %)/3 29: 30: == Memory == 31: 32: |=(% width="450" %)Actions|=Difference 33: |[[Memory after jetty startup>>Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HHeapmemoryafterjettystartup"]]|(% style="color:green" %)Use a bit more but keep less 34: |[[Memory after full SOLR index>>Performances.Jetty HSQLDB single wiki 546 to 64||anchor="HHeapmemoryafterfullSOLRindex"]]|(% style="color:green" %)Use less and keep less 35: 36: = Jetty startup = 37: 38: Unit: seconds 39: 40: Until end message is printed. Done by hand with a chronometer. 41: 42: * 5.4.6: 10 43: * 6.4: 8 44: 45: = First access = 46: 47: First HTTP request after restarting Jetty. 48: 49: == First access to not existing page without UI (/xwiki/bin/get/NoSpace/NoPage) == 50: 51: Unit: seconds 52: 53: Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account). 54: 55: * 5.4.6 : 8 56: * 6.4 : 9 57: 58: == First access to not existing page with UI (/xwiki/bin/view/NoSpace/NoPage) == 59: 60: Unit: seconds 61: 62: Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account). 63: 64: * 5.4.6 : 9 65: 66: Done by hand with a chronometer (image/js/css/etc. resources are not taken into account). 67: 68: * 6.4 : 18 69: 70: = Reload = 71: 72: XWiki is doing nothing on background and everything is both in server and client cache already. Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account). 73: 74: == Reload of not existing page without UI (/xwiki/bin/get/NoSpace/NoPage) == 75: 76: Unit: milliseconds 77: 78: * 5.4.6 : [10, 20] 79: * 6.4 : [10, 20] 80: 81: == Reload of not existing page with UI (/xwiki/bin/view/NoSpace/NoPage) == 82: 83: Unit: milliseconds 84: 85: * 5.4.6 : [75, 130] 86: * 6.4 : [70, 100] 87: 88: == Reload of Main.WebHome with UI == 89: 90: Unit: milliseconds 91: 92: * 5.4.6 : [170,300] 93: * 6.4 : [150,220] 94: 95: == Reload of Main.WebHome without UI == 96: 97: Unit: milliseconds 98: 99: * 5.4.6 : [60, 100] 100: * 6.4 : [50, 80] 101: 102: = SOLR = 103: 104: == Full SOLR reindex == 105: 106: Unit: seconds 107: 108: Delete the data/solr folder, restart, load home page and calculate the time of activity of the SOLR index thread using Yourkit (Yourkit is slowing down a bit all that but what is important is the difference anyway). 109: 110: * 5.4.6 : 59 111: * 6.4 : 60 112: 113: == SOLR sync == 114: 115: Only the thread determining what need to be indexed and not the actual indexing. 116: 117: === when index is empty === 118: 119: Unit: seconds 120: 121: * 5.4.6 : 1 122: * 6.4 : 1 123: 124: === when there is nothing to do === 125: 126: Unit: seconds 127: 128: * 5.4.6 : < 1 129: * 6.4 : < 1 130: 131: = Rendering = 132: 133: == Page with 1000 macros without UI == 134: 135: 1000 times ~{~{id}} macro, one on each line. 136: 137: Unit: seconds 138: 139: * 5.4.6 : 10 140: * 6.4 : 3 141: 142: = Heap Memory = 143: 144: Attach Yourkit to get the information. 145: 146: Unit: MB 147: 148: == Heap Memory after jetty startup == 149: 150: Start jetty and wait until java is not doing anything on both (wait for potential initialization of various stuff like core extension cache, etc). Force garbage collector before looking at the values. 151: 152: * 5.4.6 : 60 used, 449 allocated 153: * 6.4 : 44 used, 460 allocated 154: 155: == Heap Memory after full SOLR index == 156: 157: Delete the data/solr folder, restart, load home page then wait until nothing is happening in background. Force garbage collector before looking at the values. 158: 159: Unit: MB 160: 161: * 5.4.6 : 117 used, 499 allocated 162: * 6.4 : 90 used, 493 allocated