Hide last authors
Thomas Mortagne 6.1 1 {{toc/}}
2
Thomas Mortagne 146.2 3 = Environment =
4
Thomas Mortagne 145.1 5 {{velocity}}
Thomas Mortagne 146.1 6 #if ($xcontext.action == 'edit')
Thomas Mortagne 145.1 7 ; Previous version
8 : $doc.next
9 ; Next version
10 : $doc.previous
11 #end
12 {{/velocity}}
13
Thomas Mortagne 131.1 14 * Ubuntu 15.04 64b
15 * Quad core i7-3630QM
Thomas Mortagne 164.1 16 * Oracle JDK 1.8.0_60 64b
Thomas Mortagne 1.1 17 * standard jetty+hsqldb
Thomas Mortagne 144.1 18 * permdir in a SSD
Thomas Mortagne 12.1 19 * only main wiki
Thomas Mortagne 141.1 20 * configuration
21 ** ##xwiki.cfg##:
22 *** ##xwiki.store.cache.capacity=500##
Thomas Mortagne 149.4 23 ** ##Admin user:##
24 *** ##hidden documents enabled##
Thomas Mortagne 1.1 25
Thomas Mortagne 157.1 26 Most response time statistics were made with [[Dumbbench>>https://github.com/tsee/dumbbench]], you can install it using cpan.
27 For example on Debian/Ubuntu:
28
29 {{code language="bash"}}
30 $ sudo apt-get install cpanminus
31 $ sudo cpanm Dumbbench
32 {{/code}}
33
Thomas Mortagne 149.2 34 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.) and logged in with Admin user. 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.
Thomas Mortagne 113.1 35
Thomas Mortagne 165.1 36 Login with Admin uer:
37
38 {{code language="none"}}
Thomas Mortagne 167.1 39 wget --save-cookies cookies.txt --post-data 'j_username=Admin&j_password=admin&j_rememberme=true' -O /dev/null -o /dev/null "http://127.0.0.1:8080/xwiki/bin/loginsubmit/XWiki/XWikiLogin?j_username=Admin&j_password=admin&j_rememberme=true"
Thomas Mortagne 165.1 40 {{/code}}
41
Thomas Mortagne 67.1 42 = Summary =
43
Thomas Mortagne 188.1 44 Note hat most of the speed related values are an average of very moving results, a lot of things is happening during a HTTP request and it's far from stable duration.
45
Thomas Mortagne 163.1 46 "(% style="color:orange" %)similar(%%)": difference is lower than 10%
Thomas Mortagne 177.21 47 "slightly": difference is lower than 20%
Thomas Mortagne 160.1 48
Thomas Mortagne 68.1 49 == Speed ==
50
Thomas Mortagne 81.1 51 |=(% colspan="2" %)Actions|=Difference
Thomas Mortagne 182.1 52 |(% colspan="2" %){{sl}}Jetty startup{{/sl}}|(% style="color:orange" %)similar\\
53 |(% rowspan="2" width="150" %){{sl}}First access{{/sl}}|(% width="300" %){{sl id="HFirstaccesstonotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 187.1 54 |{{sl id="HFirstaccesstonotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:OrangeRed" %)slightly slower
Thomas Mortagne 177.27 55 |(% rowspan="4" %){{sl}}Reload{{/sl}}|{{sl id="HReloadofnotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 179.1 56 |{{sl id="HReloadofnotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)similar\\
57 |{{sl id="HReloadofMain.WebHomewithUI"}}Main.WebHome with UI{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 185.1 58 |{{sl id="HReloadofMain.WebHomewithoutUI"}}Main.WebHome without UI{{/sl}}|(% style="color:lightgreen" %)slightly faster\\
Thomas Mortagne 184.1 59 |(% rowspan="5" %){{sl}}SOLR{{/sl}}|{{sl}}Full SOLR reindex{{/sl}}|(% style="color:orange" %)similar\\
60 |{{sl id="Hwhenindexisempty"}}SOLR sync when index is empty{{/sl}}|(% style="color:orange" %)similar\\
61 |{{sl id="Hwhenthereisnothingtodo"}}SOLR sync when there is nothing to do{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 187.1 62 |{{sl}}Result of search finding lots of results{{/sl}}|(% style="color:OrangeRed" %)slightly slower\\
Thomas Mortagne 181.1 63 |{{sl}}Result of search finding one result{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 179.1 64 |(% rowspan="2" %){{sl}}Rendering{{/sl}}|{{sl}}Page with 1000 macros without UI{{/sl}}|(% style="color:orange" %)similar\\
65 |{{sl}}Page with 1000 html macros without UI{{/sl}}|(% style="color:red" %)20% slower\\
Thomas Mortagne 68.1 66
67 == Memory ==
68
Thomas Mortagne 92.1 69 |=(% width="450" %)Actions|=Difference
Thomas Mortagne 177.27 70 |{{sl}}Memory after jetty startup{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 180.1 71 |{{sl}}Memory after full SOLR index{{/sl}}|(% style="color:orange" %)similar\\
Thomas Mortagne 64.1 72
Thomas Mortagne 17.1 73 = Jetty startup =
Thomas Mortagne 1.1 74
Thomas Mortagne 27.2 75 Unit: seconds
76
Thomas Mortagne 149.1 77 Execute {{code language="shell"}}echo `date` && ./start_xwiki.sh{{/code}} and compare "Server started..." log date the one printed before jetty startup.
Thomas Mortagne 10.1 78
Thomas Mortagne 181.2 79 * {{previous/}}: 9
Thomas Mortagne 157.12 80 * {{next/}}: 10
Thomas Mortagne 9.1 81
Thomas Mortagne 17.1 82 = First access =
Thomas Mortagne 1.1 83
Thomas Mortagne 113.5 84 First HTTP request after restarting Jetty.
Thomas Mortagne 10.1 85
Thomas Mortagne 157.2 86 == First access to not existing page without UI ==
Thomas Mortagne 1.1 87
Thomas Mortagne 157.2 88 (/xwiki/bin/get/NoSpace/NoPage)
89
Thomas Mortagne 27.2 90 Unit: seconds
91
Thomas Mortagne 19.1 92 Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).
93
Thomas Mortagne 181.2 94 * {{previous/}}: 6
Thomas Mortagne 157.13 95 * {{next/}}: 6
Thomas Mortagne 9.1 96
Thomas Mortagne 157.2 97 == First access to not existing page with UI ==
Thomas Mortagne 19.1 98
Thomas Mortagne 157.2 99 (/xwiki/bin/view/NoSpace/NoPage)
100
Thomas Mortagne 27.1 101 Unit: seconds
Thomas Mortagne 19.1 102
Thomas Mortagne 26.1 103 Done by hand with a chronometer (image/js/css/etc. resources are not taken into account).
104
Thomas Mortagne 181.2 105 * {{previous/}}: 12
Thomas Mortagne 157.14 106 * {{next/}}: 14
Thomas Mortagne 19.1 107
Thomas Mortagne 17.1 108 = Reload =
Thomas Mortagne 1.1 109
Thomas Mortagne 157.6 110 XWiki is doing nothing on background and everything is both in server and client cache already. Values are calculated using dumbbench (image/js/css/etc. resources are not taken into account).
Thomas Mortagne 10.1 111
Thomas Mortagne 157.2 112 == Reload of not existing page without UI ==
Thomas Mortagne 1.1 113
Thomas Mortagne 157.2 114 {{code language="none"}}
Thomas Mortagne 177.5 115 dumbbench -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/NoSpace/NoPage"
Thomas Mortagne 157.2 116 {{/code}}
117
Thomas Mortagne 9.1 118 Unit: milliseconds
Thomas Mortagne 1.1 119
Thomas Mortagne 177.11 120 * {{previous/}}: 6
Thomas Mortagne 177.25 121 * {{next/}}: 6
Thomas Mortagne 9.1 122
Thomas Mortagne 157.2 123 == Reload of not existing page with UI ==
Thomas Mortagne 1.1 124
Thomas Mortagne 157.2 125 {{code language="none"}}
Thomas Mortagne 177.5 126 dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/NoSpace/NoPage"
Thomas Mortagne 157.2 127 {{/code}}
128
Thomas Mortagne 9.1 129 Unit: milliseconds
Thomas Mortagne 1.1 130
Thomas Mortagne 177.10 131 * {{previous/}}: 52
Thomas Mortagne 177.24 132 * {{next/}}: 56
Thomas Mortagne 9.1 133
Thomas Mortagne 38.1 134 == Reload of Main.WebHome with UI ==
Thomas Mortagne 34.1 135
Thomas Mortagne 157.2 136 {{code language="none"}}
Thomas Mortagne 177.5 137 dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/Main/WebHome"
Thomas Mortagne 157.2 138 {{/code}}
139
Thomas Mortagne 38.1 140 Unit: milliseconds
141
Thomas Mortagne 177.8 142 * {{previous/}}: 120
Thomas Mortagne 177.23 143 * {{next/}}: 115
Thomas Mortagne 34.1 144
Thomas Mortagne 38.1 145 == Reload of Main.WebHome without UI ==
146
Thomas Mortagne 157.2 147 {{code language="none"}}
Thomas Mortagne 177.5 148 dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/Main/WebHome"
Thomas Mortagne 157.2 149 {{/code}}
150
Thomas Mortagne 38.1 151 Unit: milliseconds
152
Thomas Mortagne 177.7 153 * {{previous/}}: 60
Thomas Mortagne 177.22 154 * {{next/}}: 50
Thomas Mortagne 38.1 155
Thomas Mortagne 17.1 156 = SOLR =
Thomas Mortagne 1.1 157
Thomas Mortagne 17.1 158 == Full SOLR reindex ==
Thomas Mortagne 1.1 159
Thomas Mortagne 27.2 160 Unit: seconds
Thomas Mortagne 1.1 161
Thomas Mortagne 62.1 162 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).
Thomas Mortagne 56.1 163
Thomas Mortagne 181.2 164 * {{previous/}}: 70
Thomas Mortagne 157.16 165 * {{next/}}: 68
Thomas Mortagne 27.2 166
Thomas Mortagne 30.1 167 == SOLR sync ==
Thomas Mortagne 1.1 168
Thomas Mortagne 29.1 169 Only the thread determining what need to be indexed and not the actual indexing.
170
Thomas Mortagne 30.1 171 === when index is empty ===
172
Thomas Mortagne 27.2 173 Unit: seconds
Thomas Mortagne 1.1 174
Thomas Mortagne 181.2 175 * {{previous/}}: 1
176 * {{next/}}: 1
Thomas Mortagne 28.1 177
Thomas Mortagne 30.1 178 === when there is nothing to do ===
Thomas Mortagne 28.1 179
180 Unit: seconds
181
Thomas Mortagne 157.15 182 * {{previous/}}: < 1
Thomas Mortagne 157.21 183 * {{next/}}: < 1
Thomas Mortagne 27.2 184
Thomas Mortagne 124.1 185 == Search ==
186
Thomas Mortagne 157.6 187 XWiki is doing nothing on background and everything is both in server and client cache already. Values are calculated using dumbbench (image/js/css/etc. resources are not taken into account).
Thomas Mortagne 124.1 188
189 Unit: milliseconds
190
Thomas Mortagne 126.1 191 === Result of search finding lots of results ===
Thomas Mortagne 124.1 192
Thomas Mortagne 128.2 193 Login with Admin user and make sure hidden document display is enabled.
194
Thomas Mortagne 157.4 195 {{code language="none"}}
Thomas Mortagne 177.5 196 dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=*"
Thomas Mortagne 157.4 197 {{/code}}
Thomas Mortagne 128.2 198
Thomas Mortagne 177.4 199 * {{previous/}}: 215
Thomas Mortagne 177.26 200 * {{next/}}: 233
Thomas Mortagne 124.1 201
Thomas Mortagne 126.1 202 === Result of search finding one result ===
Thomas Mortagne 124.1 203
Thomas Mortagne 157.4 204 {{code language="none"}}
Thomas Mortagne 177.5 205 dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=%22Learn+how+to+use+XWiki%22"
Thomas Mortagne 157.4 206 {{/code}}
Thomas Mortagne 128.2 207
Thomas Mortagne 177.5 208 * {{previous/}}: 140
Thomas Mortagne 177.20 209 * {{next/}}: 140
Thomas Mortagne 124.1 210
Thomas Mortagne 17.1 211 = Rendering =
Thomas Mortagne 1.1 212
Thomas Mortagne 17.1 213 == Page with 1000 macros without UI ==
Thomas Mortagne 1.1 214
Thomas Mortagne 143.1 215 [[1000 ~~{~~{id}} macros>>attach:Test.1000Macros.xar]].
Thomas Mortagne 35.1 216
Thomas Mortagne 157.4 217 {{code language="none"}}
Thomas Mortagne 177.5 218 dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/Test/1000Macros"
Thomas Mortagne 157.4 219 {{/code}}
220
Thomas Mortagne 149.15 221 Unit: milliseconds
Thomas Mortagne 2.1 222
Thomas Mortagne 177.18 223 * {{previous/}}: 82
224 * {{next/}}: 83
Thomas Mortagne 27.2 225
Thomas Mortagne 135.7 226 == Page with 1000 html macros without UI ==
227
Thomas Mortagne 143.1 228 [[1000 standalone ~~{~~{html}} macros>>attach:Test.1000HTMLMacros.xar]].
Thomas Mortagne 135.7 229
Thomas Mortagne 157.4 230 {{code language="none"}}
Thomas Mortagne 177.12 231 dumbbench -p 0.1 -i 100 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/Test/1000HTMLMacros"
Thomas Mortagne 157.4 232 {{/code}}
233
Thomas Mortagne 149.15 234 Unit: milliseconds
Thomas Mortagne 135.7 235
Thomas Mortagne 177.2 236 * {{previous/}}: 700
Thomas Mortagne 177.19 237 * {{next/}}: 870
Thomas Mortagne 135.7 238
Thomas Mortagne 103.1 239 = Heap Memory =
Thomas Mortagne 1.1 240
Thomas Mortagne 46.1 241 Attach Yourkit to get the information.
Thomas Mortagne 27.2 242
243 Unit: MB
244
Thomas Mortagne 103.1 245 == Heap Memory after jetty startup ==
Thomas Mortagne 46.1 246
Thomas Mortagne 110.1 247 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.
Thomas Mortagne 46.1 248
Thomas Mortagne 177.15 249 * {{previous/}}: 40 used, 494 allocated
Thomas Mortagne 157.18 250 * {{next/}}: 45 used, 375 allocated
Thomas Mortagne 27.2 251
Thomas Mortagne 103.1 252 == Heap Memory after full SOLR index ==
Thomas Mortagne 12.1 253
Thomas Mortagne 110.1 254 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.
Thomas Mortagne 42.1 255
Thomas Mortagne 27.2 256 Unit: MB
257
Thomas Mortagne 177.15 258 * {{previous/}}: 144 used, 503 allocated
Thomas Mortagne 157.17 259 * {{next/}}: 145 used, 505 allocated

Get Connected