PHP è compilato in bytecode, che viene quindi interpretato in base a qualcosa che assomiglia a una VM. Molti altri linguaggi di scripting seguono lo stesso processo generale, inclusi Perl e Ruby. Non è davvero un linguaggio interpretato tradizionale come, ad esempio, BASIC.
Non ci sarebbe alcun aumento effettivo della velocità se si tentasse di "minimizzare" la sorgente. Si otterrebbe un notevole aumento utilizzando uno bytecode cache like APC.
Facebook ha introdotto un compilatore denominato HipHop che trasforma il codice sorgente PHP in codice C++. Rasmus Lerdorf, uno dei grandi ragazzi di PHP, ha fatto un presentation for Digg earlier this year che copre i miglioramenti delle prestazioni forniti da HipHop. In breve, non è troppo più veloce dell'ottimizzazione del codice e dell'uso di una cache bytecode. HipHop è eccessivo per la maggior parte degli utenti.
Anche Facebook ha recentemente presentato HHVM, una nuova macchina virtuale basata sul proprio lavoro che rende HipHop. È ancora piuttosto nuovo e non è chiaro se fornirà un notevole incremento delle prestazioni al pubblico in generale.
Giusto per assicurarsi che sia dichiarato espressamente, si prega di leggere that presentation per intero. Indica numerosi metodi per confrontare e codificare il codice e identificare i colli di bottiglia utilizzando strumenti come xdebug e xhprof, anche da Facebook.
Si noti che l'intera cosa bytecode/vm in realtà non ti compra nulla senza una cache bytecode esterna (!). Non capisco perché PHP continui a lanciare il bytecode di default ... – delnan
Immagino che si tratti di un problema di hosting condiviso. APC è incluso in PHP per impostazione predefinita a partire dal vecchio trunk basato su 6.0. Non sono sicuro se lo vedremo per default in 5.4 o in qualsiasi modo il nuovo trunk finisca per essere chiamato ... – Charles
Grazie mille per le informazioni. Sfortunatamente non ho un controllo approfondito del mio server (è in affitto). È probabile che gli host web utilizzino APC? – Bojangles