Neueste Kommentare

Kategorien

Allgemein (6) Blogtreff (1) Domain (3) Gadget (24) Geld verdienen (16) Google (30) Nachschlag (33) Promotion (22) Recyclable Code (3) Stylemachine (13) Twitter (35) Wordpress (14)

Populär

RSS Feed SEO-Scout Mit RSS-Reader ganz entspannt lesen. Anzahl RSS-Reader SEO-Scout Zum Abonnieren klicke einfach auf den Counter oder den Zeitungsleser.

Vote für Seo-Scout.org!

Blogverzeichnis - Blog Verzeichnis bloggerei.de blogoscoop

Blogger-Treffen Lübeck: Wann das nächste? - E-Mail an frank.pfabigan@gmail.com, Ort » gmap

Vergleich aktueller PHP Compiler

Dienstag, 23. Februar 2010. 13:57 von Frank Pfabigan

Superschnelle PHP-Anwendungen für eine sehr große Menge von Besuchern? – Klar geht das. Facebook ist so eine “busy App”, geschrieben in PHP.

Facebook hat vor kurzem einen PHP Compiler namens HipHop vorgestellt, was ein allgemeines Interesse an PHP-Compilern zufolge hatte. PHP kompiliert? Ja, das gibt es schon lange.

Zunächst sollte man sich ins Gedächtnis rufen, was ein Compiler ist:

Ein Compiler ist ein Programm, das Source Code in eine andere Form von Code bringt (Repräsentation von Source Code). Die Ziel-Represäntation ist oft Maschinencode (direkt ausführbar auf dem Host-Prozessor), kann aber auch Sourcecode einer anderen Sprache oder sogar Sourcecode derselben Sprache sein.

Das Compilieren bedeutet also nicht zwangsläufig, daß Maschinencode hinten rauspurzelt, der direkt auf dem Prozessor ausgeführt werden kann.

PHP wird seit der Veröffentlichung von PHP4 im Jahre 2000 compiliert. Bis einschließlich PHP3 wurde der Sourcecode direkt vom PHP Interpreter ausgeführt.

Interpreter-Sprachen müssen nicht zwangsläufig “schlechter” im Sinne von langsamer sein. Interpreter-Sprachen wie Basic, Smalltalk und viele andere haben andere Vorzüge wie z.B. die direkte Fehleranzeige, die Compiler-Sprachen aufwändig re-implementieren müssen (durch Source-Parser etc.). Es kommt immer darauf an, was man erreichen möchte, das Ziel gibt die Programmiersprache vor.

Neben der von den PHP-Erfindern stammende ZEND Engine gibt es einige weitere PHP-Compiler:

Zum Testen wurde ein Script namens bench.php verwendet.

Ergebnisse des Tests:

Compiler Zeit Rel. Geschw.
Zend Server 5.722 0.00%
Zend Server + Zend Optimizer 5.649 1.28%
PHP static 5.518 3.57%
PHP static + Zend Optimizer 5.427 5.16%
PHC 6.438 -12.51%
PHP optimized 3.673 35.81%
HipHop 4.262 25.52%

PHC optimized bietet also die beste Performance. Bei der Wahl des Compilers sollte man sich natürlich erst mit den Eigenschaften dieser Auseinandersetzen. PHC und HipHop verfolgen unterschiedliche Ansätze, so daß nicht unbedingt die Geschwindigkeit als alleiniges Entscheidungskriterium herangezogen werden kann.

Der Test berücksichtigt keinen Objekt orientierten Code, bench.php ist ein prozedurales Script.

Das Konzept von PHC finde ich persönlich interessant: hiermit ist es möglich, eine Anwendung in unabhängige, optimierte Libs zu zerteilen, die einzeln gewartet werden können. So erhält man eine superschnelle “verteilte” Anwendung (wenn man weiß, was man tut).

Quell-Angabe: dieser Artikel wurde direkt von einem Artikel von Manuel Lemos auf PHPclasses.org inspiriert, wo sich noch viele weitere nützliche Informationen zu diesem Thema finden. Ich fand den Artikel so interessant, daß ich den Inhalt unbedingt weiter verteilen musste. Der Original Artikel ist englisch.

Juwelen, die man nebenbei entdeckt: auf der PHC-Download Seite findet man den Hinweise auf ROSE, ein Projekt, daß C, C++, Fortran und eben auch PHP ineinander überführt und Analysetools bereitstellt. Wer also bisher in C, C++ Webanwendungen geschrieben hat, kann sich mit ROSE die Ergebnisse in PHP anschauen und durch die Analysetools aufdecken, welche Programmteile optimiert werden müssen.


Drupal Beispielanwendung mit eigenem node-type, Views, CCK

Sonntag, 08. November 2009. 17:38 von Frank Pfabigan

Gleich nachdem ich für einen Kunden eine Anwendung fertiggestellt hatte, habe ich heute Nacht noch meinen ersten Artikel für die Drupal-Gemeinde geschrieben. In rostigem englisch (Es ist unglaublich, wie schnell man alles vergisst, wenn man es nicht ab und zu nutzt).

Dabei geht es darum, eine Pinnwand zu realisieren, auf der Notizzettel festgepinnt werden, die man sich der Detailansicht einzeln anschauen kann.

Drupal ist das Basissystem, erweitert durch die Module CCK, Views und ein paar andere.

Die Ausgabe der Pinnwand wird wie in Drupal üblich durch Bereitstellen einer entsprechend benannten Datei überschrieben und durch zusätzlichen HTML- und CSS-Code in die gewünschte Form gepresst, damit das ganze wie eine Pinnwand mit gelben Notizzetteln darauf aussieht. Links zu Screenshots sind dem Artikel beigefügt.

Mein erster Drupal Artikel: http://drupal.org/node/626578


Daten aufbereiten und visualisieren

Sonntag, 16. August 2009. 16:05 von Frank Pfabigan

Hier habe ich ein Beispiel dafür gefunden, wie man aus langweiligen statistischen Daten wunderschöne Grafiken erzeugen kann, die man sich sogar an die Wand hängen kann.

Lee Byron hat anhand seiner bei last.fm hinterlegten Statistiken herausgefunden, welche Musik er zu welchem Zeitpunkt wirklich am liebsten gehört hat. Er nutzt dazu Tools aus dem OpenSource-Bereich wie z.B. Processing, um die Daten zu visualisieren und zu ordnen.

Ich muß sagen, die Ergebnisse sind wirklich beeindruckend und nett anzuschauen.