Also wollte ich einen ähnlichen Benchmark einbauen . Ich habe eine Twitter-Bootstrap-Beispielseite genommen und sie in xhtml strict konvertiert. Danach habe ich genau eine ApplicationScoped CDI-Bean eingerichtet, die Hello, World zurückgegeben hat. Ich habe den EL-Ausdruck auf die Seite gesetzt. Für die JSF-Version habe ich den JSF-Ressourcenhandler verwendet, für die JSPX-Version habe ich CSS und JS Includes im HTML-Stil verwendet.
Ich habe Apache Bench verwendet, um die Ladezeit der Hauptseite zu testen. Der Test wurde auf einem nicht optimierten TomEE + v1.5.2-Server durchgeführt. Ich führte jeden Benchmark 5x durch und führte dann einen vollständigen GC durch, bevor ich eine Messung durchführte. Bost-Tests wurden in derselben JVM-Instanz durchgeführt, ohne die JVM neu zu starten. Ich habe den APR im libpath verfügbar, bin mir aber nicht sicher, ob dieser Test davon betroffen ist.
JSF ist langsamer, aber nicht viel, da es sich um sehr kleine Mengen handelt. Was nicht gezeigt wird, ist, dass die Seiten komplexer werden und JSF / JSPX linear oder exponentiell skaliert.
Eine Sache, die mir aufgefallen ist, ist, dass JSPX im Vergleich zu JSF sehr wenig Müll produziert. Wenn der Benchmark auf der JSPX-Seite ausgeführt wurde, sprang der verwendete Heap von 184 MB auf 237 MB. Wenn Sie den Benchmark in derselben JVM auf der JSF-Seite ausführen, springt der verwendete Heap von 108 MB auf mindestens 404 MB. Zu diesem Zeitpunkt wurde jedoch eine automatische Garbage Collection gestartet. Es scheint eine absolute Notwendigkeit zu sein, Ihren Garbage Collector auf JSF abzustimmen .
JSF
jonfisher@peanut:~$ /usr/local/bin/ab -n 10000 -c 100 http://localhost:8080/cdi-jsp/index.jsf
This is ApacheBench, Version 2.3 <$Revision: 1373084 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: Apache-Coyote/1.1
Server Hostname: localhost
Server Port: 8080
Document Path: /cdi-jsp/index.jsf
Document Length: 2904 bytes
Concurrency Level: 100
Time taken for tests: 2.138 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 32160000 bytes
HTML transferred: 29040000 bytes
Requests per second: 4677.27 [#/sec] (mean)
Time per request: 21.380 [ms] (mean)
Time per request: 0.214 [ms] (mean, across all concurrent requests)
Transfer rate: 14689.55 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 1.3 1 21
Processing: 1 20 9.0 18 63
Waiting: 1 19 8.8 17 62
Total: 2 21 8.8 20 64
Percentage of the requests served within a certain time (ms)
50% 20
66% 23
75% 25
80% 27
90% 32
95% 39
98% 46
99% 50
100% 64 (longest request)
JSPX
jonfisher@peanut:~$ /usr/local/bin/ab -n 10000 -c 100 http://localhost:8080/cdi-jsp/page2.jspx
This is ApacheBench, Version 2.3 <$Revision: 1373084 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: Apache-Coyote/1.1
Server Hostname: localhost
Server Port: 8080
Document Path: /cdi-jsp/page2.jspx
Document Length: 2440 bytes
Concurrency Level: 100
Time taken for tests: 1.273 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 26290000 bytes
HTML transferred: 24400000 bytes
Requests per second: 7856.63 [#/sec] (mean)
Time per request: 12.728 [ms] (mean)
Time per request: 0.127 [ms] (mean, across all concurrent requests)
Transfer rate: 20170.98 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 5 2.3 6 20
Processing: 1 8 4.6 6 40
Waiting: 1 8 4.3 6 40
Total: 2 13 3.8 12 41
Percentage of the requests served within a certain time (ms)
50% 12
66% 12
75% 13
80% 13
90% 17
95% 20
98% 24
99% 28
100% 41 (longest request)