Blog

Thursday 25 September 2008

read/add comments (2)

Mi sono finalmente deciso a fare un benchmark dettagliato per trovare la causa della lentezza del blog. La mia prima ipotesi era che la causa fosse l’elevato numero di chiamate alle funzioni preg_match() e preg_replace() necessarie per gestire gli URL riscritti. In realtà il collo di bottiglia si è rivelato essere l’elencazione (non la lettura) dei file nei quali vengono salvati post e commenti: questa operazione richiede circa un secondo nel mio server locale, e una quantità compresa tra i dieci ed i venti secondi sul server che ospita il sito. Le soluzioni possibili sono cambiare hosting, nella speranza che l’operazione richieda meno tempo nel nuovo server, oppure riscrivere le routine di Poster in modo che utilizzino un indice piuttosto che elencare ogni volta i file. Implementare la seconda soluzione potrebbe richiedere un buon numero di cambiamenti al codice di Poster, e in tutta sincerità, non si tratta del codice meglio strutturato – e quindi più facile da modificare – che abbia mai scritto. È cresciuto in maniera organica nel corso degli anni, di pari passo con la mia conoscenza del PHP, e pur avendo subito delle riscritture sostanziali, nessuna di queste ha mai modificato realmente la struttura di base. Potrebbe essere questa la spinta che mi porterà finalmente a cominciare l’implementazione della versione 2.0 di Poster, da lungo tempo pianificata ma mai realizzata nel concreto? Può darsi. Nel frattempo, portate pazienza, e sappiate comunque che la colpa è solo in piccola parte mia.