Performance e scalabilità delle applicazioni in Go

Workshop organizzato da Italian Gophers su scalabilità e performance di un’applicazione in Go

Performance e scalabilità delle applicazioni in Go

Questo è il primo della serie di workshop itineranti su Go organizzati dalla community Italian Gophers!

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

Il workshop di Fabio Falzoi ha lo scopo di illustrare ai partecipanti come migliorare la scalabilità e le performance di un’applicazione scritta in Go.
Inizieremo con una panoramica sulle peculiarità del linguaggio, spiegando le scelte progettuali fatte dal Google Go Team e il loro impatto sulle performance.
Con l’aiuto di vari esempi, vedremo come scrivere codice idiomatico e performante, così da sfruttare al massimo le capacità del runtime.
Analizzeremo nel dettaglio i vari tool che Go mette a disposizione per osservare il comportamento delle applicazioni, con l’obiettivo di identificare eventuali colli di bottiglia e capire come eliminarli.
Particolare attenzione sarà rivolta alla gestione della memoria in Go: vedremo come funzionano il memory allocator e il garbage collector, e come rendere il nostro codice il più efficiente possibile nei loro confronti.

Programma:

• Architettura delle CPU moderne dalla prospettiva di uno sviluppatore Go
• Architettura del runtime Go ed effetti sulla scalabilità delle applicazioni
• I tool di Go: benchmarking, profiling e l’execution tracer
• Gestione della memoria in Go: memory allocator e garbage collector

Prerequisiti:

• Un portatile con un ambiente Go 1.13 funzionante
• Conoscenza, anche di base, del linguaggio Go

Chi è Fabio Falzoi?

Appassionato di programmazione fin dalla tenerà età, ha esperienza in vari settori dello sviluppo: Linux kernel e programmazione embedded, big data e web applications.
Inizialmente attratto dal Go per la sua sintassi simile a quella del C, ha apprezzato le sue caratteristiche e ha avuto modo, dal 2018, di utilizzarlo in produzione, oltre che per molti progetti personali.