Categorie
Domini

Come individuare i colli di bottiglia delle performance di un sito Web

Approfondimenti

Approfondimenti

Per mostrare la nostra tesi abbiamo considerato un caso concreto. I diagrammi di pagina precedente visualizzano un’analisi effettivamente svolta su un sito Web realmente esistente. Ciò permette di verificare se abbiamo individuato il problema. Dopo aver eliminato il contatore delle visite ripetiamo l’analisi con LoadImpact. Il risultato è il seguente

counter_04

Figura 4 – Analisi delle performance

Il tempo di caricamento medio della pagina è sceso sotto il secondo, esattamente come ci auspicavamo. Questo risultato ci insegna due cose. Innanzitutto dobbiamo chiederci se, dal punto di vista del marketing, sia più efficace un contatore delle visite oppure un tempo di caricamento ridotto. Dando un’occhiata sul Web possiamo verificare che il contatore delle visite è presente soprattutto sui siti amatoriali. I siti professionali al più presentano dei contatori puntuali e specifici della singola pagina, articolo o prodotto. Il nostro parere è che, in casi come questo, il contatore è sicuramente sacrificabile a vantaggio delle performance.

A questo punto possiamo ripetere il ragionamento. Ad esempio, analizzando il sito che abbiamo scelto come caso di studio, notiamo la presenza di diversi widget di statistiche (vedi figura 2). Se teniamo conto del fatto che il sito utilizza Google Analytics, dobbiamo chiederci se gli altri widget siano davvero necessari. Per rispondere alla domanda basta ripetere l’analisi, controllando i tempi medi di caricamento di questi widget. Se questi componenti dovessero impiegare più di 300ms per caricarsi, potremmo valutare di rimuoverli dal sito.

Un altro approccio viene suggerito dai report offerti da LoadImpact. Dopo il grafico del tempo medio di caricamento (Figura 4) dovremo trovare un diagramma a torta

counter_05

Figura 5 – Peso dei vari componenti

Facciamo attenzione all’interpretazione del diagramma. Nel caso qui sopra, ad esempio, le immagini sono divise in tre settori diversi: jpeg, png e gif. Per capire il peso totale delle immagini dobbiamo sommare i loro contributi. In questo caso le immagini contribuiscono con una percentuale di circa il 30% al tempo di caricamento. Questo è un valore accettabile, soprattutto se lo confrontiamo con il tempo di caricamento del codice JavaScript, pari al 27% (non accettabile).

L’analisi del diagramma a torta potrebbe suggerire di ottimizzare i nostri componenti JavaScript, ma questa potrebbe essere una conclusione errata, perché tutti i widget JavaScript ( il contatore, le statistiche sulle visite, AddThis, ecc…) contribuiscono a quel 27% della voce JavaScript. Ecco come dobbiamo procedere: ogni volta che pensiamo di aver individuato il colpevole della lentezza del sito, dobbiamo provare a rimuovere solamente quel singolo elemento, e poi ripetere l’analisi delle performance. È importante verificare i risultati dell’analisi che si ottengono provando a rimuovere un singolo elemento alla volta, altrimenti non sapremo mai se abbiamo veramente individuato il colpevole, oppure eliminato un innocente. Ad esempio, se dopo aver rimosso uno dei widget il peso della voce JavaScript (del diagramma a torta) scendesse attorno al 10%, potremmo dedurne che i risultati di figura 5 erano dovuti a questo widget. Altrimenti, se il cambiamento non è significativo, dobbiamo ripristinare il widget e ripetere l’analisi rimuovendone un altro. Solamente alla fine, dopo aver verificato l’impatto di tutti i widget e librerie, potremo andare a chiederci se la lentezza è dovuta al nostro codice JavaScript.

L’esempio appena visto suggerisce il seguente metodo di lavoro:

  1. Svolgere un’analisi delle performance (LoadImpact o simili)
  2. Confrontare i risultati con l’analisi specifica della pagina (Firebug o simili)
  3. Provare a rimuovere un componente “pesante” identificato al punto 2 (widget, libreria, ecc…)
  4. Ripetere l’analisi del punto 1
  5. Se non si ottengono cambiamenti degni di nota ripristinare il componente (rimosso al punto 3) e ripetere il procedimento da capo

In questo modo potremo valutare in modo più preciso qual è effettivamente il peso di un singolo componente, Con un po’ di fortuna, ripetendo il ciclo solo 3 o 4 volte, potremmo riuscire a migliorare le performance senza rivedere l’intera architettura del software.

Lascia un commento

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.