Profilare le prestazioni con l'AI

Sviluppo avanzato con AI per programmatori

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Cosa vedremo

Lente che esamina strutture dati

 

  • Profilare il codice
  • Individuare colli di bottiglia
  • Valutare le strutture dati
Sviluppo avanzato con AI per programmatori

Profilare con cProfile

 

Ispezione profilo ch1

 

Cosa misura cProfile:

  • Tempo CPU per funzione
  • Funzioni chiamate
  • Numero di chiamate
  • Tempo per chiamata
Sviluppo avanzato con AI per programmatori

L'AI interpreta il profilo

Analisi profilo ch1

Sviluppo avanzato con AI per programmatori

Capire l'hotspot

Indice trasferimento posizione

Sviluppo avanzato con AI per programmatori

Capire l'hotspot

Strutture dati

Sviluppo avanzato con AI per programmatori

Valutare l'efficienza

Efficienza strutture dati

 

Valutazione AI:

  • ✅ Accettabile per bassi volumi
  • ❌ Mancano ottimizzazioni per scala ampia
Sviluppo avanzato con AI per programmatori

Deep dive: HashMapLinear

 

hashmaplinear-class.png

Problemi di HashMapLinear

 

Scalabilità di HashMapLinear:

  • ✅ Adatta a mappe piccole e fisse
  • 📉 Degrada in tempo lineare
  • ❌ Problematico con crescita imprevedibile
Sviluppo avanzato con AI per programmatori

Problemi di concorrenza

Collisione di thread (race condition)

Problemi di thread safety:

  • Letture/scritture concorrenti possono gareggiare
  • Rischio di corruzione dati
Sviluppo avanzato con AI per programmatori

Reimplementazione suggerita dall'AI

hashmaplinear-reimplementation-with-prompt.png

 

  • 🔎 Rivedi sempre i suggerimenti AI
  • 🔎 Testa prima di applicare
Sviluppo avanzato con AI per programmatori

Validazione benchmark

 

Esecuzione benchmark:

benchmarking-run.png

Risultati:

  • Originale (HashMapOld): baseline
  • Ottimizzata (HashMapNew): 2x+ più veloce
  • ✅ Patch AI validata
Sviluppo avanzato con AI per programmatori

Ciclo di ottimizzazione assistito dall'AI

 

lesson1-2-review.png

Sviluppo avanzato con AI per programmatori

Messaggio chiave

 

optimization_cycle_2.png

 

Ciclo iterativo:

  • Profilare il codice
  • Identificare le operazioni dominanti
  • R riscrivere dove serve
  • Validare i risultati

🤖 L'AI ci aiuta a muoverci più velocemente con decisioni basate su dati

Sviluppo avanzato con AI per programmatori

Passiamo alla pratica !

Sviluppo avanzato con AI per programmatori

Preparing Video For Download...