2010-03-18 9 views
6

Avrebbe senso passare a HipHop invece che a XCache?HipHop invece di XCache?

HipHop è pronto per la prima volta o dovremmo aspettare diversi mesi prima di implementarlo?

Modifica: siamo interessanti nel test della configurazione su un server che esegue vBulletin.

risposta

22

Consentitemi di chiarire un equivoco che potreste avere su Hiphop e Xcache. XCache funziona aggiungendo il caching Opcode all'implementazione PHP di ZEND (come APC e amici), mentre HipHop di Facebook consente di trasformare il codice PHP in codice C++ e quindi di compilare usando g ++. Non è possibile eseguire XCache con HipHop poiché HipHop non dipende dall'interprete di Zend (e nemmeno usa gli opcode di php poiché è compilato in bytecode dopo essere stato convertito in C++).

Ora per rispondere alla tua domanda, HipHop viene utilizzato dal vivo per ospitare una grande quantità di traffico di Facebook. Facebook non pubblicherebbe questo progetto se non fosse vicino stabile, ma poiché è molto nuovo, farei comunque attenzione. HipHop non è solo una patch per il vecchio Zend Interpreter, è un modo completamente diverso per eseguire il codice PHP e probabilmente avrà alcuni bug in esso.

Una cosa che Facebook ha fatto per garantire che Hiphop funzionasse prima di passare a quella era che erano in grado di eseguire test unitari molto rigorosi di ogni possibile richiesta sul loro sito. In questo modo se l'output di Hiphop era diverso dal normale Zend PHP, tornavano indietro e eseguivano il debug un po 'di più finché tutto "non funzionava". Solo perché "funziona" su codice base di Facebook non dimostra che funzionerà per il tuo. Se decidi di passare a HipHop, assicurati di testarlo bene.

EDIT:

HHVM (nuova versione VM di HPHP) può ora eval e create_function. Dovrebbero essere uguali per tutti/motivi più significativi.

Ci sono alcune cose che non sono compatibili con HipHop. Hanno rimosso le funzioni eval e create_function. Inoltre supportano solo PHP 5.2.x per ora, ma hanno in programma di aggiungere il supporto per 5.3 "presto".

+0

Grazie per questa risposta informativa. Puoi leggere la domanda sulla macchina virtuale HipHop- http://stackoverflow.com/questions/8697348/facebook-hiphop-virtual-machine-for-php Grazie –

8

Mi piace l'idea di HipHop, quindi non fraintendetemi, ma c'è qualcosa da ricordare: HipHop non è per tutti. Da Sebastian Bergmann:

non è una soluzione per un problema affrontato da 99,9% del PHP implementazioni là fuori

A meno che non si dispone di Facebook il traffico proporzione e il collo di bottiglia è l'utilizzo della CPU o della memoria, è' Non è probabile che vedano molti vantaggi (rispetto a xcache, apc, ecc.). Gli accessi al database e al file system continueranno a essere i tuoi assassini.

2

Sono abbastanza fiducioso che vbulletin 3.x non funzionerà con HipHop. Il sistema di plugin di VB 3 comprende quasi 2000 dichiarazioni eval sparse per tutto il codice, e eval non è supportato da hiphop.

Questa è probabilmente solo la punta dell'iceberg, quando si tratta di compilare il vbulletin.