Ottimizzare l'uso di memoria con l'IA

Sviluppo avanzato con AI per programmatori

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Dalla complessità temporale a quella spaziale

 

Le prestazioni non sono solo velocità:

  • Uso di memoria
  • Scalabilità
  • Crescita dei dati nel tempo

Dalla complessità temporale a quella spaziale

Sviluppo avanzato con AI per programmatori

Test su larga scala

Confronto scala database

 

  • ✔ Dataset piccolo: utile per imparare
  • 📈 Problemi di memoria: emergono in scala
  • 💾 Database reale: più vicino alla produzione
Sviluppo avanzato con AI per programmatori

Avviso: crescita memoria

crescita memoria

Sviluppo avanzato con AI per programmatori
Sviluppo avanzato con AI per programmatori
Sviluppo avanzato con AI per programmatori

L'IA interpreta le tracce di memoria

 

interpretazione di tracemalloc

 

Riscontro IA:

  • Grande memoria trattenuta
  • Strutture intermedie ripetute
  • Durante operazioni di aggregazione
Sviluppo avanzato con AI per programmatori

Causa radice identificata

Causa radice

Sviluppo avanzato con AI per programmatori

L'IA propone correzioni

 

🤖 Prompt: collo di bottiglia di memoria

In base al collo di bottiglia individuato, suggerisci refactoring per ridurre il picco di memoria. Valuta streaming, riuso dei dati o rappresentazioni alternative.

 

Strategie proposte:

  • Ridurre le allocazioni intermedie
  • Riutilizzare i buffer
  • Introdurre caching
Sviluppo avanzato con AI per programmatori

Compromessi del caching

Bilancia compromessi cache

 

Attenzione al caching:

  • ✔ Può migliorare le prestazioni
  • ❌ Può anche aumentare la memoria
Sviluppo avanzato con AI per programmatori

Compromessi del caching

 

🤖 Prompt: confronto dei compromessi

Dato questo carico e pattern di accesso, una strategia di caching ridurrà la memoria totale o la peggiorerà? Spiega i compromessi.

suggerimento cache IA

Sviluppo avanzato con AI per programmatori

Implementazione IA

correzioni di codice IA

 

Come sempre:

  • Rivedi con cura
  • Convalida prima di accettare le modifiche
Sviluppo avanzato con AI per programmatori

Risultati di validazione

 

Esecuzione benchmark:

benchmark memoria

Risultati:

  • Picco memoria in forte calo
  • Runtime stabile
  • ✅ Ottimizzazione convalidata
Sviluppo avanzato con AI per programmatori

Prompt per benchmarking

🤖 Prompt: benchmarking

Sei un esperto di performance Python. Di seguito due snapshot di tracemalloc, prima e dopo una modifica.

  • Prima: {before_snapshot}
  • Dopo: {after_snapshot}

Confronta picco di memoria e numero di allocazioni. Giustifica con numeri. Se è un miglioramento, spiega perché; altrimenti, cosa correggere.

 

Prompt di benchmarking efficaci:

  • Fornisci prima/dopo
  • Specifica quali metriche contano
  • Chiedi conclusioni basate su evidenze

 

✔ Rende l'ottimizzazione ripetibile e sistematica

Sviluppo avanzato con AI per programmatori

Passons à la pratique !

Sviluppo avanzato con AI per programmatori

Preparing Video For Download...