Insegnamenti di Rasmus Lerdorf: verificare gli include con PECL/Inclued

Sono stato la settimana scorsa all’ottimo phpday 2009. Uno dei talk che mi ha colpito maggiormente è stato quello si Rasmus, l’inventore del PHP. Veramente ha tenuto due talk, uno sulla storia del php (Welcome) e l’altro, sconvolgente, sull’ottimizzazione (Simple is Hard). Rasmus era piuttosto infervorato sulla questione ottimizzazione, semplicità del codice e conseguente abbandono dei framework.
Ha spiegato alcune tecniche per la verifica dei colli di bottiglia dei siti, sia con benchmark sia con strumenti di diagnostica. Ho provato siege (si scarica e si lancia) e sto provando inclued che essendo un PECL si installa da riga di comando con:

# pecl install inclued

Ma con mia grande sorpresa non si è installato

running: phpize                                    
sh: phpize: command not found                      
ERROR: `phpize' failed

Grrrrr. Alla ricerca del comando perduto:

# apt-get install php5-dev

Rilanciando il comando, pecl scarica il pacchetto, lo compila e lo installa. Cerca di modificare la configurazione di php.ini senza successo, quindi procedo con inserire la configurazione in /etc/php5/conf.d/inclued.ini

extension=inclued.so
inclued.enabled=1
inclued.dumpdir=/tmp

Fatto, ora inizia il divertimento… ma solo DOPO aver riavviato apache (altrimenti si perdono decine di minuti a chiedersi perchè nonostante gli sforzi /tmp rimane vuota!).
Ricaricando una qualsiasi pagina vengono creati file /tmp/include.XXXXX.1 e a questo punto si possono graficare:

$ php /usr/share/php/gengraph.php -i inclued.27843.1
Written inclued.out.dot...
$ dot -Tpng -o 1.png inclued.out.dot

Ho testato la home page di un’applicazione che sto scrivendo con Symfony 1.2, se volete vedere la devastazione dei risultati guardate l’immagine.

Albero di include/require di un progetto symfony

Albero di include/require di un progetto symfony

Written by kea

Leave a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.