Ein Performance-Benchmark fürJava-Web-Frameworks
Diplomarbeit
Christophe Sokol
Institut für InformatikFreie Universität Berlin
13. Juni 2013
Kontext
Umsetzung
Verweise
Performance-Benchmarks
I Was ist der Untersuchungsgegenstand?I Was wird gemessen?I Wie wird gemessen?I Womit wird gemessen?
Java-Web-Frameworks
I TapestryI Spring MVC
I JSFI Struts
I Ruby on Rails, Sinatra (Ruby)I Django (Python)I Catalyst (Perl)I Symfony, Zend Framework (PHP)
Features von Web-Frameworks und -Anwendungen
I RoutingI Views / TemplatesI Input ValidationI Session HandlingI ORMI Form HandlingI Authentication
I AuthorizationI I18n / L18nI ScaffoldingI CachingI Asset ManagementI Web servicesI AJAX
Frameworks sind unterschiedlich
I MikroframeworksI Full-Stack-Frameworks
I Einfluss der PlattformI Zielgruppe
Bestehende Benchmarks
I Extremer AnwendungsfallI Kleine Auswahl von FrameworksI Infrastruktur nicht transparentI Sind veraltet
Ansatz
I Aufteilung in TeilbenchmarksI Quellcode und Konfiguration der Infrastruktur mit git
verwaltenI Automatisierte AuswertungenI Kollaboration per sog. Pull-Request
Teilbenchmarks
I Hallo WeltI RoutingI Zufälliger TextI SeitenwechselI Binäre DatenI Formulare
I SessionsI AuthentifizierungI DatenbankzugriffI TemplatesI GlobalisierungI API
Ein Teilbenchmark
I Implementierung mit Spring MVC und TapestryI Deployment mit PuppetI Konfiguration der Benchmarks mit PuppetI Auswertung mit RI Ergebnis als Webseite
Probleme
I Viele verschiedene Technologien und SprachenI Automatisierung ist zeitaufwändigI Benchmarks noch nicht 100%ig deterministisch(!)I Was ist eine Web-Anwendung?I Iteratives Vorgehen schwer durchzuhalten
Nächste Schritte
I Ermitteln von optimaler Konfiguration der LaufzeitumgebungI Implementierung weiterer TeilbenchmarksI Erweitern der AuswertungenI Validierung der Ergebnisse auf anderer InfrastrukturI Web-basiertes Anlegen von Benchmarks (Puppet ENC)I Weitere Frameworks einbeziehen
Literatur
I Casteleyn, Sven, Florian Daniel, Peter Dolog, and Maristella Matera. Engineering Web Applications.Data-Centric Systems and Applications. Berlin, Heidelberg: Springer-Verlag, 2009.
I ———. “Performance Testing.” In Engineering Web Applications, 349. Data-Centric Systems andApplications. Berlin, Heidelberg: Springer-Verlag, 2009.
I F5 Networks, Inc. “Creating a Robust Performance Testing Methodology,” 2007.https://devcentral.f5.com/downloads/f5/creating-performance-test-methodology.pdf.
I Feitelson, Dror G. “Metric and Workload Effects on Computer Systems Evaluation.” Computer 36, no. 9(September 2003): 18–25.
I Fleming, Philip J., and John J. Wallace. “How Not to Lie with Statistics: The Correct Way to SummarizeBenchmark Results.” Communications of the ACM 29, no. 3 (March 1986): 218–221.doi:10.1145/5666.5673.
I Lev Walkin. “Stress-testing Httperf, Siege, Apache Benchmark, and Pronk.” Lionet, January 4, 2012.http://lionet.livejournal.com/99984.html.
I Sohn, Dirk M., and Papick Taboada. OIO Kompass: Java Web-Frameworks. Orientation in ObjectsGmbH, April 2012. http://www.oio.de/public/java/java-web-frameworks-vergleich/jsf-vs-gwt-studie.htm.
BenchmarksI Cecchet, E., V. Udayabhanu, T. Wood, and P. Shenoy. “Benchlab: An Open Testbed for Realistic
Benchmarking of Web Applications.” In 2nd USENIX Conference on Web Application Development, 37,2011. http://static.usenix.org/events/webapps11/tech/final_files/webapps11_proceedings.pdf.
I Davis, Seth. “The Great Web Framework Shootout.” Blog. Curia: Technology Thoughts and Ideas, 2011.http://blog.curiasolutions.com/the-great-web-framework-shootout/.
I JT Dev. “Rails, Wicket, Grails, Play, Tapestry, Lift, JSP, Context.” Blog. About Programming Stuff, May28, 2011. http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/.
I Nagpurkar, P., W. Horn, U. Gopalakrishnan, N. Dubey, J. Jann, and P. Pattnaik. “WorkloadCharacterization of Selected JEE-based Web 2.0 Applications.” In IEEE International Symposium onWorkload Characterization, 2008. IISWC 2008, 109–118, 2008.
I Punz, Werner. “Mojarra Vs. MyFaces Performance.” Werners Blog, October 14, 2011.http://werpublogs.blogspot.de/2011/10/mojarra-vs-myfaces-performance.html.
I TechEmpower, Inc. “Framework Benchmarks.” TechEmpower Blog, March 28, 2013.http://www.techempower.com/blog/2013/03/28/framework-benchmarks/.
I Thomas, Peter. “‘Perfbench’ Update: Tapestry 5 and Grails.” Blog. Incremental Operations, September14, 2009. http://ptrthomas.wordpress.com/2009/09/14/perfbench-update-tapestry-5-and-grails/.
I ———. “Seam / JSF Vs Wicket: Performance Comparison.” Blog. Incremental Operations, January 14,2009. http://ptrthomas.wordpress.com/2009/01/14/seam-jsf-vs-wicket-performance-comparison/.
I Uribe, Leonardo. Understanding JSF 2 and Wicket: Performance Comparison, May 18, 2012.https://raw.github.com/lu4242/performance-comparison-java-web-frameworks/master/comparison-2012-APR/Performance%20Comparison-Leonardo%20Uribe-FINAL-Detailed.pdf.
I Van den Enden, Stijn. “WWW: World Wide Wait. A Performance Comparison of Java Web Frameworks.”presented at the Devoxx, Antwerp, Belgium, November 17, 2011.http://prezi.com/dr3on1qcajzw/www-world-wide-wait-devoxx-edition/.