Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Entwicklung & Design

Freie Web-Frameworks im Performance-Vergleich

    Freie Web-Frameworks im Performance-Vergleich

In einem Blogpost bei Curia werden dreizehn der populärsten frei verfügbaren Web-Frameworks wie z.B. Django, Rails oder Kohana in Hinsicht auf ihre Performance verglichen. Dafür wurden verschiedene Benchmark-Tests nach Anfragen pro Sekunde für Full-Stack-, Micro- und PHP-Frameworks durchgeführt. Wir fassen den Artikel kurz für euch zusammen.

PHP Web-Frameworks: Hello-World-Test

Anfragen pro Sekunde im echten Leben

Wie Seth Davis in seinem Blogpost The Great Web Framework Shootout selbst schreibt, muss man die Praxistauglichkeit seines Performance-Vergleichs nach Anfragen pro Sekunde mit Vorsicht genießen. Das Anliegen bei den durchgeführten Benchmark-Tests war eine Gegenüberstellung unterschiedlichster Web-Frameworks in ihrer minimalen Standardkonfiguration. Mit optimierten Einstellungen wäre natürlich aus jedem einzelnen Framework noch sehr viel mehr rauszuholen, aber die Vergleichbarkeit wäre gar nicht mehr gegeben. Auch sagen die Performance-Tests nichts darüber aus, welche Technologie besser oder schlechter ist. Schneller bedeutet nicht immer besser bei Web-Frameworks.

Dreizehn Web-Frameworks im Performance-Check

Seth hat sich insgesamt dreizehn verschiedenen Web-Frameworks gewidmet, die alle frei verfügbar sind. Dabei hat er in drei übergeordnete Kategorien unterteilt:

1. Schwergewichtige Allround-Web-Frameworks (Full-Stack)

Pyramid, Django, TurboGears und Rails wurden als Vertreter der Allround-Web-Frameworks verglichen. Hier ihre Perfomance-Ergebnisse mit Template- und Datenbankzugriff:

Full-Stack Web-Frameworks: Performance-Test mit Template- und Datenbankzugriff

2.  Micro-Web-Frameworks

Bottle, Flask, Sinatra und Web.go wurden als Micro-Web-Frameworks gegenüber gestellt. Hier die Perfomance-Ergebnisse für die untersuchten Micro-Frameworks mit Template- und Datenbankzugriff:

Micro-Web-Frameworks: Performance-Test mit Template- und Datenbankzugriff

3. PHP-Web-Frameworks

Als PHP-Web-Frameworks fiel die Wahl auf CakePHP, Kohana, CodeIgniter, Symfony und Yii. Hier die Perfomance-Ergebnisse für die verglichenen PHP-Frameworks mit Template- und Datenbankzugriff:

PHP-Web-Frameworks: Performance-Test mit Template- und Datenbankzugriff

Drei Basistests für jedes Web-Framework

Seth hat jedes untersuchte Framework drei Basis-Performance-Tests unterzogen und dabei jeweils die abgesetzten Anfragen pro Sekunde gemessen.

1. Hello-World-Test

Bei diesem Test wird nur ein einfacher String ohne Template und ohne Datenbank ausgegeben.

2. Template-Test

Der Template-Test gibt einen Beispieltext (Lorem ipsum) über das Template-System des jeweiligen Web-Frameworks aus.

3. Template-Datenbank-Test

Dieser Test lädt fünf Reihen aus einer SQLite Datenbank und gibt sie samt Template aus.

Als Testumgebung hat Seth eine Vanilla Ubuntu Umgebung mit vier Amazon EC2 Instanzen und 7,5 GB Arbeitsspeicher verwendet (Apache 2.2.14, Python 2.6.5, Ruby 1.9.2p290 und PHP 5.3.2).

Weitere Infos und Grafiken zu den einzelnen Performance-Tests findet ihr im Original-Blogartikel.

Alle Web-Frameworks auf einen Blick

Eigentlich sind die untersuchten Web-Frameworks viel zu unterschiedlich um sie bei so einem Performance-Check nach Anfragen pro Sekunde eins zu eins nebeneinander zustellen. Kompilierte Programmiersprachen arbeiten z.B. schneller als Skriptsprachen. Objekt Relationales Mapping (ORM) wie bei Rails oder Django dauert länger als flache Datenbankabfragen wie bei Bottle oder Sinatra. Dennoch liefert die folgende Grafik einen schönen Überblick:

Alle Web-Frameworks auf einen Blick: Performance-Test mit Template- und Datenbankzugriff

Auch wenn sich die sehr unterschiedlichen Web-Frameworks in der Praxis eigentlich nicht valide eins zu eins miteinader vergleichen lassen, liefert Seth hier eine spannende Performance-Gegenüberstellung nach Anfragen pro Sekunde, die so gut wie möglich auf vereinheitlichten Testbedingungen basiert.

Weiterführende Links:

Bildnachweis für die Newsübersicht: aka garryknight / flickr.com, Lizenz: CC-BY

Finde einen Job, den du liebst zum Thema TYPO3, PHP

12 Reaktionen
ricardo.cescon
ricardo.cescon

Hallo,

mal unabhängig von Zahlen empfehle ich http://www.phpbar.de/w/crvcl oder http://en.cr-solutions.net/p/projects da man hier auch eine integrierte Lastverteilung für MySQL und Co. hat. Somit bekommt man auch keine Performance-Probleme. Diese Framework ist vor allem in erster Linie auf Performance entwickelt.

Antworten
Thomas Reuter
Thomas Reuter

Die Ausführgeschwindigkeit steht doch nicht im Vordergrund bei einem Framework. Es ist halt ein Kompromiss zwischen Entwicklungsgeschwindigkeit und Ausführgeschwindigkeit. Klar kann ich mit einem "kleinen" Framework, welches auch noch hoch spezialisiert ist eine höhere Ausführgeschwindigkeit erzielen.

Wem es nur um die reinen Geschwindigkeit des Frameworks geht, der muss eh ein eigenes entwickeln, welches sehr spezialisert ist.

Ich habe gestern einen Vergleich gesehen (http://blog.dirk-helbert.de/2012/02/10/php-framework-vergleich-und-hilfe-bei-der-auswahl/), den ich viel spannender finde. Da werden die Zahlen von PHP Frameworks verglichen. Quasi eine Community Performance. Ob das eine endgültige Auswahlhilfe ist, weiß ich auch nicht, aber interessant ist es schon.

Antworten
Monika Steinberg

@Dirk Der Benchmark-Test wurde nicht von t3n durchgeführt, sondern von Seth Davis - ansonsten wäre Flow sicher dabei gewesen ;)

Antworten
Dirk
Dirk

Das t3n nimmt Flow3 nicht in den Test auf? Jungs, ändert Euren Namen oder habt Ihr vergessen was T3N mal für eine Bedeutung hatte? Schade. Echt sehr schade.

Antworten
rubyist
rubyist

Geschwindigkeit hin oder her, wichtig ist letztlich was das Framework kann, wie sicher es ist und wie gut man damit umgehen kann. Viele glauben, nur weil sie das schnellste Framework verwenden ist alles Nötige für eine schnelle und sichere Website getan. Oft haben genau dieselben Spezialisten maßenhaft "N+1 DB-Abfragen" oder andere Performancebremsen eingebaut.

Deshalb: Relevant sind nicht die reinen Benchmarkzahlen eines Frameworks, sondern was man daraus macht...

Antworten
Monika Steinberg

@Marcel Eichner Danke für den Hinweis! Link ist repariert.

Antworten
Marcel Eichner

Bei dem Kohana Link stimmt was nicht. Da scheint das http zu fehlen. An sonsten recht interessanter Artikel und es ist schade, dass Cake 2.0 nichtdabei war.

Antworten
Christopher
Christopher

@stefan32: Das gleiche habe ich auch grade gedacht :/

Antworten
stefan32
stefan32

Schade, dass FLOW3 nicht mit im Test dabei ist.

Antworten
sec0nd
sec0nd

Interessant. Vor allem, dass Rails nur unwesentlich langsamer als Codeigniter ist, dafür aber deutlich mehr kann. Und die PHP-Frameworks, die sich ebenfalls als "full-stacked" vermarkten, sind grottenlangsam.

Antworten
Sascha
Sascha

Denke an dieser Stelle kann man wieder anfangen zu streiten. Auch nicht in der Liste ist Fat-Free (wurde hier sogar vorgestellt) und ist von der Geschwindigkeit mit Symfony zu vergleichen. Ist dafür aber ein Micro-Framework.

Antworten
Sipatshi
Sipatshi

Hallo,

wieso nicht Cakephp 2.0 ? Diese ist doch stabil und schon lange nicht mehr in der Beta-Phase ! Schon bald erscheint die stabile 2.1 Version :)

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen