2010-03-18 8 views
6

Wäre es sinnvoll, zu HipHop statt zu XCache zu wechseln?HipHop statt XCache?

Ist HipHop bereit für die Primetime oder sollten wir einige Monate warten, bevor wir es implementieren?

Edit: Wir sind interessant beim Testen der Konfiguration auf einem Server mit vBulletin.

Antwort

22

Lassen Sie mich ein Missverständnis über Hiphop und Xcache klären. XCache fügt der PHP-Implementierung von ZEND Opcode-Caching hinzu (wie APC und Freunde), während Facebooks HipHop PHP-Code in C++ - Code transformiert und dann mit g ++ kompiliert werden kann. Es ist nicht möglich, XCache mit HipHop auszuführen, da HipHop nicht vom Zend-Interpreter abhängt (und nicht einmal PHP-Opcodes verwendet, da es nach der Umwandlung in C++ in Bytecode kompiliert wird).

Nun, um Ihre Frage zu beantworten, wird HipHop verwendet, um eine große Menge an Facebook Traffic zu hosten. Facebook würde dieses Projekt nicht veröffentlichen, wenn es nicht annähernd stabil wäre, aber da es sehr neu ist, würde ich immer noch Vorsicht walten lassen. HipHop ist nicht nur ein Patch für den alten Zend Interpreter, es ist eine komplett andere Art den PHP Code zu starten und wird wahrscheinlich ein paar Bugs enthalten.

Eine Sache, die Facebook getan hat, um zu gewährleisten, dass Hiphop arbeitete, bevor sie zu ihm wechselten, war sie in der Lage, sehr strenge Komponententests jeder möglichen Anfrage auf ihrer Seite zu gründen. Wenn die Ausgabe von Hiphop anders als die normale Zend PHP wäre, würden sie zurückgehen und etwas mehr debuggen, bis alles "für sie funktionierte". Nur weil es auf der Facebook-Code-Basis "funktioniert", beweist es nicht, dass es für Ihre funktioniert. Wenn Sie sich entscheiden, zu HipHop zu wechseln, stellen Sie sicher, dass Sie es gut testen.

EDIT:

HHVM (neue VM-Version von HPHP) können nun eval und create_function. Sie sollten für alle wichtigen Gründe gleich sein.

Es gibt ein paar Dinge, die nicht mit HipHop kompatibel sind. Sie entfernten die Funktionen eval und create_function. Sie unterstützen auch nur PHP 5.2.x für jetzt, aber sie planen, Unterstützung für 5.3 "bald" hinzuzufügen.

+0

Vielen Dank für diese informative Antwort. Können Sie bitte in die Frage auf HipHop Virtual Machine-http://stackoverflow.com/questions/8697348/facebook-hiphop-virtual-machine-for-php schauen Danke –

8

Ich mag die Idee von HipHop, also versteh mich hier nicht falsch, aber es gibt etwas zu erinnern: HipHop ist nicht für jedermann. Von Sebastian Bergmann:

es keine Lösung für ein Problem von 99,9% der PHP-Implementierungen gibt

Es sei denn, Sie haben Facebook Anteil Verkehr und Ihre Engpass CPU oder Speicherauslastung, Sie‘konfrontiert ist Es ist unwahrscheinlich, dass sie viel Nutzen sehen (im Vergleich zu xcache, apc usw.). Datenbank- und Dateisystemzugriffe werden weiterhin Ihre Mörder sein.

2

Ich bin ziemlich zuversichtlich, dass vbulletin 3.x nicht mit HipHop funktioniert. Das Plugin-System von VB 3 besteht aus fast 2000 Eval-Anweisungen, die im gesamten Code verteilt sind, und eval wird nicht von hiphop unterstützt.

Das ist wahrscheinlich nur die Spitze des Eisbergs, wenn es darum geht, Vbulletin kompilieren zu lassen.