SlideShare a Scribd company logo
Performance e Drupal
Come individuare i colli di bottiglia della vostra
applicazione (ed evitare che ne abbia in futuro)
Chi sono
Vincenzo Di Biaggio
@vincenzodb
Software Developer @SparkFabrik - Milano
FB: https://www.facebook.com/sparkfabrik/
Software: https://github.com/vincenzodibiaggio
Videogiochi: http://steamcommunity.com/id/vincenzodb/
Foto: https://500px.com/vincenzodb
Musica: http://www.last.fm/it/user/vincenzodb
- Il cliente chiama perchè il sito è lento
- Una volta chiusa la chiamata, l’intero ufficio si riunisce per pregare tenendosi per
mano
- Dopo N ore ci si rende conto che si può migliorare la situazione SE si riesce ad
identificare il problema
- Identificato il problema, si scrive del codice migliore
Il problema
Identificare e circoscrivere il problema / 1
- OGGI diamo per scontato che server e infrastruttura siano
adeguati per sopportare il carico
- Le cache sono attive? Anche quelle di views? E quelle dei
blocchi?
- CSS e Js vengono aggregati?
- Le immagini vengono gestite con degli opportuni image styles?
- Moduli come update_status o inerenti lo sviluppo (es. devel) sono
disattivati?
Sì, è risposta a tutte le domande?
Ora potete iniziare a pregare sul serio
Identificare e circoscrivere il problema / 2
- Disattivazione dei blocchi comuni a molte pagine
- Controllo risorse esterne
- Eliminare i dati superflui (field nelle query, field nelle view, ecc)
Principali colli di bottiglia
- Non utilizzare molti entity_load (node_load, taxonomy_term_load,
ecc.)
- Preferire sempre node_load_multiple
- Se possibile, rimpiazzare i _load con delle query
- Usare il caching di views al meglio
- Utilizzare le differenze tra il caching dei risultati e del rendered output a nostro
vantaggio
- Staticizzare i dati necessari frequentemente
Trovare i colli di bottiglia
La parola chiave è profilare.
Profilare quanto l’applicazione usa il database
Profilare quante volte effettuiamo operazioni identiche
Testare il carico dell’applicazione sui server
Testare l’ottimizzazione del Front End
DEMO
Performance e Drupal
Links
DSC Profiling: https://gitlab.sparkfabrik.com/vincenzo.dibiaggio/dsc-
profiling
YSlow: http://yslow.org/
Google Page Speed: https://developers.google.com/speed/pagespeed/
Developer Toolbar del vostro browser, tab ‘Network’
Extended Statusbar per Firefox
Hints su ottimizzazione delle view:
https://www.silviogutierrez.com/blog/optimizing-drupal-views-right-way/
High Performance Drupal (libro): https://www.drupal.org/node/2119971
Grazie
Vincenzo Di Biaggio
@vincenzodb
Software Developer @SparkFabrik - Milano
FB: https://www.facebook.com/sparkfabrik/

More Related Content

PDF
Madaudo
PPT
Velocità sito web
PDF
Grasso
PPTX
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
PDF
Sicurezza su WordPress
PDF
Backup: mettiamo al sicuro i nostri siti WordPress
PDF
Come velocizzare un sito web | Corso SEO a Bologna
PPTX
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...
Madaudo
Velocità sito web
Grasso
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Sicurezza su WordPress
Backup: mettiamo al sicuro i nostri siti WordPress
Come velocizzare un sito web | Corso SEO a Bologna
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...

Viewers also liked (20)

PPTX
Dn12_u3_a6_sgaa
PPTX
Dn 12 u3_act17_sgaa
DOCX
Deber deontologia
PPTX
Plan Nacional del Buen Vivir 2013-2017
PDF
сзао платные парковки благоустройство2016
PPTX
Políticas y lineamientos
PPTX
Dn 12 u3_act25_sgaa
PPTX
One Large Data Lake, Hold the Hype
PPTX
Yuly base de datos
PPTX
The Furture of Direct Mail/Marketing
PPTX
Políticas y lineamientos
PPTX
Peer To Peer (ReDEs)
PPTX
Dn 12 u3_act23_sgaa
PDF
Sprenger genser 001-234
PDF
Virtual Financial ! Powerful Business Finance
PPTX
PPTX
Políticas y lineamientos
PPTX
Plan de investigación en la modalidad de proyecto
PPTX
Dn12_u3_a8_sgaa
PPTX
Dn 12 u3_act22_sgaa
Dn12_u3_a6_sgaa
Dn 12 u3_act17_sgaa
Deber deontologia
Plan Nacional del Buen Vivir 2013-2017
сзао платные парковки благоустройство2016
Políticas y lineamientos
Dn 12 u3_act25_sgaa
One Large Data Lake, Hold the Hype
Yuly base de datos
The Furture of Direct Mail/Marketing
Políticas y lineamientos
Peer To Peer (ReDEs)
Dn 12 u3_act23_sgaa
Sprenger genser 001-234
Virtual Financial ! Powerful Business Finance
Políticas y lineamientos
Plan de investigación en la modalidad de proyecto
Dn12_u3_a8_sgaa
Dn 12 u3_act22_sgaa
Ad

Similar to Performance e Drupal (20)

ODP
Working between the clouds
PPTX
Back to Basics, webinar 6: Messa in esercizio
PPTX
Come sviluppare applicazioni cross device con HTML
ODP
Working between the clouds (versione completa)
PPTX
ASP.NET performance optimization
PPTX
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
PDF
Come l’Open Source può essere alla base di un business di successo: il caso H...
PDF
Applicazioni HTML5 Superveloci - Salvatore Romeo
PPTX
Wp app studio_new
PDF
Help Framakey WebApps
PPTX
Technical SEO Audit Checklist - Giovanni Sacheli Search Marketing Connect 2018
PPTX
Meetup Fluent Design e Progressive Web App
PDF
Enterprise ASP.NET Web Forms 4.0
PDF
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
PDF
Meetup Progressive Web App
PDF
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
PDF
Stanco delle solite Web App? Passa al Prgressive
PDF
I linguaggi del web - seconda edizione (3° giornata)
PPTX
Be02 portare la nostra applicazione su azure
PDF
Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico
Working between the clouds
Back to Basics, webinar 6: Messa in esercizio
Come sviluppare applicazioni cross device con HTML
Working between the clouds (versione completa)
ASP.NET performance optimization
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Come l’Open Source può essere alla base di un business di successo: il caso H...
Applicazioni HTML5 Superveloci - Salvatore Romeo
Wp app studio_new
Help Framakey WebApps
Technical SEO Audit Checklist - Giovanni Sacheli Search Marketing Connect 2018
Meetup Fluent Design e Progressive Web App
Enterprise ASP.NET Web Forms 4.0
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
Meetup Progressive Web App
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
Stanco delle solite Web App? Passa al Prgressive
I linguaggi del web - seconda edizione (3° giornata)
Be02 portare la nostra applicazione su azure
Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico
Ad

Performance e Drupal

  • 1. Performance e Drupal Come individuare i colli di bottiglia della vostra applicazione (ed evitare che ne abbia in futuro)
  • 2. Chi sono Vincenzo Di Biaggio @vincenzodb Software Developer @SparkFabrik - Milano FB: https://www.facebook.com/sparkfabrik/ Software: https://github.com/vincenzodibiaggio Videogiochi: http://steamcommunity.com/id/vincenzodb/ Foto: https://500px.com/vincenzodb Musica: http://www.last.fm/it/user/vincenzodb
  • 3. - Il cliente chiama perchè il sito è lento - Una volta chiusa la chiamata, l’intero ufficio si riunisce per pregare tenendosi per mano - Dopo N ore ci si rende conto che si può migliorare la situazione SE si riesce ad identificare il problema - Identificato il problema, si scrive del codice migliore Il problema
  • 4. Identificare e circoscrivere il problema / 1 - OGGI diamo per scontato che server e infrastruttura siano adeguati per sopportare il carico - Le cache sono attive? Anche quelle di views? E quelle dei blocchi? - CSS e Js vengono aggregati? - Le immagini vengono gestite con degli opportuni image styles? - Moduli come update_status o inerenti lo sviluppo (es. devel) sono disattivati?
  • 5. Sì, è risposta a tutte le domande? Ora potete iniziare a pregare sul serio
  • 6. Identificare e circoscrivere il problema / 2 - Disattivazione dei blocchi comuni a molte pagine - Controllo risorse esterne - Eliminare i dati superflui (field nelle query, field nelle view, ecc)
  • 7. Principali colli di bottiglia - Non utilizzare molti entity_load (node_load, taxonomy_term_load, ecc.) - Preferire sempre node_load_multiple - Se possibile, rimpiazzare i _load con delle query - Usare il caching di views al meglio - Utilizzare le differenze tra il caching dei risultati e del rendered output a nostro vantaggio - Staticizzare i dati necessari frequentemente
  • 8. Trovare i colli di bottiglia La parola chiave è profilare. Profilare quanto l’applicazione usa il database Profilare quante volte effettuiamo operazioni identiche Testare il carico dell’applicazione sui server Testare l’ottimizzazione del Front End
  • 11. Links DSC Profiling: https://gitlab.sparkfabrik.com/vincenzo.dibiaggio/dsc- profiling YSlow: http://yslow.org/ Google Page Speed: https://developers.google.com/speed/pagespeed/ Developer Toolbar del vostro browser, tab ‘Network’ Extended Statusbar per Firefox Hints su ottimizzazione delle view: https://www.silviogutierrez.com/blog/optimizing-drupal-views-right-way/ High Performance Drupal (libro): https://www.drupal.org/node/2119971
  • 12. Grazie Vincenzo Di Biaggio @vincenzodb Software Developer @SparkFabrik - Milano FB: https://www.facebook.com/sparkfabrik/