Faster PHP fo shizzle—HipHop for PHP
Guter Überblick über HipHop, Facebooks Infrastruktur und warum HipHop einem wohl nichts bringt, solange man nicht Facebook-ähnlichen Traffic hat (350 Mrd. Pageviews pro Monat o_o)
Guter Überblick über HipHop, Facebooks Infrastruktur und warum HipHop einem wohl nichts bringt, solange man nicht Facebook-ähnlichen Traffic hat (350 Mrd. Pageviews pro Monat o_o)
Kommentare
Ich kenn mich mit Web-Entwicklung nicht aus. Wieso programmiert man da nicht gleich in C++?
PHP und C++ stehen ja beide in Kritik nicht so schön zu sein, aber C++ ist ein bisschen strenger als php. (soweit ich mich da auskenne – also ich find C++ schöner)
Haben die Entwickler von Webtoolkit mal in ihrem Blog vorgeschlagen:
http://www.webtoolkit.eu/wt#/blog/2009/12/17/facebook__php__is_not_very_kopenhagen
Und fefe hat sich darüber lustig gemacht:
http://blog.fefe.de/?ts=b5d0e013
Tja, da guckt der jetzt aber ganz schön doof aus der Wäsche…
Webentwicklung in C++ ist wie Spieleentwicklung in Assembler: Zu kompliziert und aufwändig. Du hast starke und statische Typisierung, musst also ständig aufpassen, dass jede Variable den richtigen Typ hat. Zudem wird C++ nur kompiliert. Mal eben was ändern, abspeichern und den Browser refreshen funktioniert nicht.
Facebook begann als kleines PHP/MySQL-Projekt in Zuckerbergs Studentenbude, wuchs dann extrem schnell und hat laufend neue Features bekommen. Da blieb keine Zeit, die Seite auf eine effizientere, sauberere Sprache umzustellen. Haben sie ja laut Blogpost öfters versucht. Da die PHP-Hauptseite sich aber zu schnell weiterentwickelt hat, kamen sie nie nach. Also bleiben sie bei PHP. Hat auch den Vorteil, dass neue Mitarbeiter schneller Anschluss finden.
Nun benutzen sie also PHP, wollen das auch nicht ändern, bekommen aber Performanceprobleme. Selbst mit hochoptimierten Setups, PHP-Bytecaches á la APC etc. ist PHP der Engpass. Also ändern sie PHP selbst. Dabei haben sie jetzt keinen neuen PHP-Interpreter mit Just-in-Time-Compiler (wie Java, V8) oder ähnlichem entwickelt, sondern ‚einfach‘ einen PHP-zu-C++-Übersetzer, der den Code gleich noch etwas optimiert. C++-Compiler erzeugen verdammt schnellen Code udn so ist HipHop anscheinend rund 50% schneller als Facebooks altes PHP-Setup (was sicherlich auch schon hochoptimiert war).
Das bringt uns aber alles garnichts, solange wir keine riesige Seite haben, die nicht mehr von der Datenbank, sondern vom Codeinterpreter gebremst wird (und auf tausenden Servern läuft :>)
sehr interessant das ganze. Ich hätte ehrlich gesagt nicht gedacht, dass Facebook komplett auf PHP basiert. Wobei ich die Vorteile natürlich verstehen kann, vor allem jetzt, da man die Performanceprobleme auch deutlich verkleinert hat.
Auch wenn der Code-Übersetzer für kleine Seiten nichts bringt, ich glaub ich werde ihn mir mal näher anschauen und ausprobieren, ich bin einfach interessiert, was für ein c++ ergebnis bei einigen meiner skripte rauskommt…
mfg brio
Noch haben sie leider nix hochgeladen. Wird dann wohl irgendwann auf http://github.com/facebook/hiphop-php erscheinen.