Facebook hat PHP noch einmal deutlich beschleunigt

Beim Social Network Facebook haben die Entwickler weiter an einer Optimierung der Performance von PHP gearbeitet. Das Ergebnis, die HipHop Virtual Machine (HHVM), haben sie nun als Open Source-Projekt auf der Entwickler-Plattform GitHub ... mehr... Quellcode, Code, Programmiersprache, Php, Source Code Quellcode, Code, Programmiersprache, Php, Source Code Free for Commercial Use / Flickr

Diese Nachricht vollständig anzeigen.

Jetzt einen Kommentar schreiben
 
Amerikanische Forscher haben intelligentes Leben bei Facebook gefunden. Es handelte sich um einen Link zu Twitter.
 
@Rikibu: Und das hat mit der News genau was zutun?
 
Ich bin begeistert - Das 1. Mal, dass aus facebook tatsächlich etwas sinnvolles heraus kommt...
 
@DRMfan^^: Ich find's überraschend!
 
Sehr interessanter Ansatz. PHP Codes in nativer C Sprache zu kompilieren :)
 
@JuanPabloIssa: Interessant ist es schon. Trotzdem frage ich mich, warum sie so einen Umweg wählen und es nich gleich in C scripten, wenn ihnen die Performance so wichtig ist. Aber scheinbar hat man wohl einfach keine Lust, die ganzen alten PHP-Scripte manuell auf C zu portieren.
 
@XChrome: Normalerweise ist PHP eine Scriptsprache. Das bedeutet, dass erst zur Laufzeit das PHP-Script auf dem Server übersetzt wird. Anscheinen haben die mit HipHopVM da was zusammengewurschtelt, was PHP-Code direkt compiliert. Ehrlich gesagt, hab ich es noch nicht mal zu 100% verstanden :)
 
@JuanPabloIssa: Es ist einfach vergleichbar zu ASP.NET / J2EE. Hier wird erstellter Code in eine Zwischensprache kompiliert (JIL/ByteCode), das später eigentlich ausgeführt wird. FB umgeht nun die Tatsache, dass sie einen Apache benötigen, um PHP auszuführen - sie wandeln eben PHP in C++ um. PHP ist aus der C/C++/CGI Bewegung entstanden. Es ist zwar die einzige "Websprache", die wirklich frei verfügbar ist, aber sie hat in Sachen Performance gegenüber J2EE und vor allem gegenüber ASP.NET massiv das nachsehen. Das wollen sie durch so einen Tweak eben ausmerzen.
 
@TurboV6: CGI ist doch auch kompilierter Code oder vertue ich mich jetzt da?
 
@TurboV6: Ich verstehe aber nciht wieso nicht ASP.net oder JSP, JSF, Wicket oder ein anderes Javaframework genutzt wird.
 
@JuanPabloIssa: CGI ist erst mal nur ein Standard, dahinter können serverseitige Prozesse in einer beliebigen Sprache laufen. Geläufig sind perl, python oder auch einfach nur Shellskripte.
 
@Knerd: Ich hoffe ich vertue mich da jetzt nicht, aber ist es nicht problematisch .Net Code auf Linux-Servern zu nutzen? Da fehlt ja das Framework und Mono ist auch nich so das wahre für den professionellen Einsatz denke ich. Naja und wenn Sie schon PHP in etwas performanteres umwandeln, dann würde ich auch gleich C/C++ wählen und nicht etwas, was zwar schneller ist, aber noch nicht das schnellste ;)
 
@kazesama: Ja FB hat Linux server ich meinte wieso sie nicht direkt ne Windowsumgebung nehmen, die können sich das leisten.
 
@Knerd: Dann stellt sich die Frage: Wieso sollten sie so viel zusätzliches Geld ausgeben, weil es werden nicht wenige Server sein. Dazu sind vllt. explizite Tools, welche nur auf Linux existieren nötig.
 
@Fallen][Angel: Das glaub ich zwar nicht aber mit dem Geld hast du Recht.
 
@TurboV6: Seit wann benötigt man Apache, PHP ist eigenständig und nur zur Ausgabe und Kommunikation zu und mit dem Webbrowser wird Apache benötigt. PHP selbst ist quasi eigenständig, es kann entweder via CGI oder direkt als Modul in den Apache eingeklinkt werden. PHP selbst ist auch nicht mal so langsam, da alle Funktionen auf die man zurückgreift sowieso nativ programmiert sind. Natürlich muss der Interpreter erst mal das Script parsen, genau an der Stelle greift das System von Facebook. Ist aber kein neuer Ansatz, gibt bereits andere ähnliche Optimierungen für PHP (eAccelerator, ionCube PHP Accelerator etc.). Der Vorteil von PHP gegenüber C++ ist die große Funktionsbibliothek die besonders auf Web Applikationen ausgelegt ist, das alles direkt in C++ zu machen wäre sicher um einiges mehr Aufwand.
 
@kazesama: das stimmt so nicht. Je nach Aufgabe kann .NET durch den JIT-Compiler schneller sein als C/C++. Das ist aber wie gesagt vom Ziel abhängig.
 
@rAcHe kLoS: In PHP ist nicht alles nativ. Das würde auch überhaupt nicht funktionieren. Zwar ist die Variante über CGI etwas schneller als über Apache; trotzdem benötigt PHP seinen Kern - und der ist alles andere als nativ. Aber nichts desto trotz: nur weil etwas nativ ist, heißt es nicht, dass es schneller ist. Das wird man nun mit WinRT und Windows 8 mit Spannung analyisieren können, wenn es mit .NET konkurrieren wird.
 
@Knerd: alles Kostenreduktion. Java hat den Fokus auf PostgreSQL oder Oracle / DB2. ASP.NET bzw viel eher C# in diesem Fall den Fokus auf MSSQL und PHP eben auf mysql. Klar untestützten alle auf gewisse weise jedes andere DBMS aber hier geht es eben um Kosten. Auch wenn mySQL mit Abstand die "schlechteste" DB aus Entwickler-Sicht ist: aus kostensicht (ohne 3rd-Party Support) ist es die günstigste alternative - auch wenn nicht kostenlos, wie viele denken.
 
@TurboV6: Naja in Java ist MySQL momentan wichtiger als PostgreSQL, denn MySQL gehröt Oracle.
 
@Knerd: aber als Java enstanden und gewachsen ist, hat mySQL keine Rolle gespielt. Das wird erst nach und nach kommen. So ein Aufkauf hat keine 360° Wende zur Folge. Das wird aber mit der Zeit kommen; da hast Du recht - momentan aber noch nicht.
 
@TurboV6: Die meisten Javaprojekte die ich kenne und mit DBs arbeiten nutzen MySQL. Selbst Hibernate empfiehlt MySQL.
 
@Knerd: nur weil Du sie kennst heißt das nicht, dass das den Kern betrachtet. Java ist mit Oracle enstanden und gewachsen. Damals gab es noch gar kein mysql. Diese kam erst mit der Web-Bewegung. Und einen OR-Mapper, der mySQL empfiehlt, als Referenz zu nennen.. findest das nicht wirklich ein bisschen Blauäugig? Im Gegensatz dazu ist das Entity Framework von .NET wirklich im Framework drin, und Hibernate nur eine 3rd-Party Extension.
 
@Knerd: ach die wohl größte Anwendung, auch wenn es neben ABAP haupstächlich Java-Stacks sind, dürfte wohl SAP sein.
 
@TurboV6: Ah okay. Gut zu wissen. Gilt das nur für C#? Weil eig. bezog sich meine Antwort auf die Frage, wieso hier kein Java zum Einsatz kommt :)
 
@kazesama: Bei .NET ensteht JIL-Code, egal ob von VB.NET, C#, J# oder F#... bei Java ist es eben ByteCode. Beide Ergebnisse laufen aber in ihrem eigenen Stacks / VM. Die Technik an sich ist die gleiche: Just-in-Time-Compiler.
 
@XChrome: Der Umweg wird gewählt weil es wahrscheinlich viel mehr PHP Programmierer als C Programmierer gibt, da einfacher einzusteigen, zudem ist Code schneller geschrieben, hatte FB auch verlauten lassen, Meldung gabs vor paar Tagen auf Golem.
 
Ist ein interessanter Ansatz. Mich würde interessieren, wie sich HipHop Code im Vergleich zu Java schlägt. Mittlerweile ist die JVM auch hochgradig optimiert. Eigentlich müsste man sich mal die Zeit nehmen und die selbe Web-App einmal in Java und einmal in PHP/HipHop schreiben um beide dann zu vergleichen... Gibt's da schon Benchmarks?
 
@hit8run: Reines PHP ist allein schon aufgrund der Tatsache das es sich um eine Scriptsprache handelt langsamer. Aber solch ein Vergleich wäre wirklich interessant.
 
@hit8run: Java und PHP haben miteinander rein gar nichts zu tun.
 
@dodnet: Genauso wie Äpfel und Birnen. Doch kann man beide essen. Schmecken nur anders ;-)
 
Da sind wohl viele Programmierer 24/7 "im Tunnel" ;-)
 
Facebook... wenn ich den scheiss namen schon höre krieg ich plack
 
Ist ja schön auch mal was positives über Facebook zu hören, aber warum zur Hölle nennen die das HipHop?
 
@GlockMane: Weil FB genau die Zielgruppe von HipHop-Fans trifft. Kinderkrabbelstube halt ;-)
Kommentar abgeben Netiquette beachten!

Facebooks Aktienkurs in Euro

Facebooks Aktienkurs - 6 Monate
Zeitraum: 6 Monate

Der Facebook-Film im Preis-Check

WinFuture Mobil

WinFuture.mbo QR-Code Auch Unterwegs bestens informiert!
Nachrichten und Kommentare auf
dem Smartphone lesen.