Velocizzare il proprio sito!

9 novembre 2008

Programmazione, Tips and Tricks

Oggi facendo i miei “soliti” esperimenti ho scritto due righe apparentemente inutili che però sembra abbiano migliorato un po’ le prestazioni di questo sito.

Le righe in questione sono le seguenti:

<?
ob_clean();
flush();
?>

Cosa sono?

ob_clean() – E’ il comando che cancella/svuota il contenuto dell’output_buffer senza, però, eliminare il buffer stesso.

flush() -E’ il comando che elimina il buffer.

Perché? Cos’è l’Output Buffer?

Il mio Hosting attuale ha l’output_buffer attivo di default e anche provando a disattivarlo tramite override con php.ini resta comunque abilitato. Solitamente non crea problemi in quanto si tratta di un buffer creato appositamente per migliorare le performance del Web Server e del Php. Una volta, quando ancora avevamo 56K e ISDN eravamo abituati a vedere la pagina caricarsi piano piano, pezzo per pezzo. Appariva il logo, poi il menu e via dicendo si componeva tutta la pagina. Con l’avvento delle attuali ADSL questa situazione non si verifica più, almeno a livello visivo. A livello prettamente tecnico l’intepretazione e la visualizzazione di una pagina Web continuano ad avere questo comportamento.

L’output_buffer server a migliorare tutto ciò aggiungendo un buffer dove viene caricata la pagina prima ancora che venga “servita” al Client, ossia il vostro Browser. In questo modo quello che una volta era il vedere il singolo pezzo caricato ora diventa un’attesa temporale, seppur minima. Utilizzando un buffer è necessario attendere che si riempia tutto prima che vengano inviati i dati al Browser (e quindi prima che iniziate a vedere la pagina visivamente).

Come e Dove?

Da quel che ho scoperto facendo varie prove è consigliato inserire le due righe di codice prima di qualsiasi output della pagina. Io nel caso di WordPress l’ho inserito prima di qualsiasi cosa nella pagina header del mio Template che si trova a questo percorso:

/<root_di_wordpress>/wp-content/themes/<nome del template utilizzato>/header.php

Ho inserito le righe prima della dicitura “<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0…” nel seguente modo:

<?
ob_clean();
flush();
?>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

Risultati

Da quel che ho potuto constatare sul mio sito e su quello di (pochi) altri le performance e soprattuto i tempi di risposta del Server migliorano.

Tengo a precisare che al momento non ho prove “scientifiche”  Velocizzare il proprio sito! a sostegno della mia tesi e, quindi, vi invito a provare e se avete voglia ad informarmi dell’eventuale miglioramento (e speriamo non peggioramento) del vostro sito commentate questo post fornendo quante più informazioni possibili.

Il mio attuale Hosting ha il Php configurato come Cgi di Apache e l’output_buffering impostato a 4096.

Velocizzare il proprio sito!

Configurazione Php come CGI

Velocizzare il proprio sito!

Configurazione output_buffering a 4096

, , ,

About

Sono un geek di 28 anni, innamorato dell'informatica dall'età di 7. Appassionato del Web, dei linguaggi di programmazione e di sicurezza informatica. Nel 2007 ho creato questo sito per raccogliere tutto ciò che apprendo giorno dopo giorno nel mio lavoro in un It Department.

View all posts by capn3m0

Trackbacks/Pingbacks

  1. Abilitare compressione HTTP ( Mod_deflate ) | capn3m0.org - WebSecurity - 10 dicembre 2009

    [...] deflate, htaccess, mod_deflate, performance 10dic Tempo fa avevo già accennato a come poter ottimizzare le performance del proprio sito agendo sul “php.ini” per variare alcuni parametri quali il [...]

Leave a Reply

Stop SOPA