Optymalizacja pamięci z AI

Zaawansowane programowanie wspomagane przez AI dla deweloperów

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Od złożoności czasowej do przestrzennej

 

Wydajność to nie tylko szybkość:

  • Użycie pamięci
  • Skalowalność
  • Wzrost danych w czasie

Od złożoności czasowej do przestrzennej

Zaawansowane programowanie wspomagane przez AI dla deweloperów

Testowanie na dużą skalę

Porównanie skali bazy danych

 

  • ✔ Mały zbiór danych: przydatny do nauki
  • 📈 Problemy z pamięcią: pojawiają się przy skali
  • 💾 Prawdziwa baza danych: bliżej produkcji
Zaawansowane programowanie wspomagane przez AI dla deweloperów

Ostrzeżenie o wzroście pamięci

memory-grouth.png

Zaawansowane programowanie wspomagane przez AI dla deweloperów
Zaawansowane programowanie wspomagane przez AI dla deweloperów
Zaawansowane programowanie wspomagane przez AI dla deweloperów

AI interpretuje ślady pamięci

 

tracemalloc-interpretation.png

 

Wynik AI:

  • Duża zatrzymana pamięć
  • Powtarzające się struktury pośrednie
  • Podczas operacji agregacji
Zaawansowane programowanie wspomagane przez AI dla deweloperów

Zidentyfikowana przyczyna źródłowa

Przyczyna źródłowa

Zaawansowane programowanie wspomagane przez AI dla deweloperów

AI proponuje rozwiązania

 

🤖 Prompt – wąskie gardło pamięci:

Na podstawie zidentyfikowanego wąskiego gardła pamięci zaproponuj strategie refaktoryzacji zmniejszające szczytowe użycie pamięci. Rozważ strumieniowanie, ponowne wykorzystanie danych lub alternatywne reprezentacje.

 

Proponowane strategie:

  • Redukcja pośrednich alokacji
  • Ponowne użycie buforów
  • Wprowadzenie cachowania
Zaawansowane programowanie wspomagane przez AI dla deweloperów

Kompromisy cachowania

Waga kompromisów cache

 

Ostrożnie z cachowaniem:

  • ✔ Może poprawić wydajność
  • ❌ Może też zwiększyć użycie pamięci
Zaawansowane programowanie wspomagane przez AI dla deweloperów

Kompromisy cachowania

 

🤖 Prompt – porównanie kompromisów:

Biorąc pod uwagę to obciążenie i wzorzec dostępu, czy strategia cachowania zmniejszy ogólne użycie pamięci, czy może je pogorszyć? Wyjaśnij kompromisy.

ai-cache-suggestion.png

Zaawansowane programowanie wspomagane przez AI dla deweloperów

Implementacja przez AI

ai-code-fixes.png

 

Jak zawsze:

  • Dokładnie przejrzyj zmiany
  • Zweryfikuj przed zaakceptowaniem
Zaawansowane programowanie wspomagane przez AI dla deweloperów

Wyniki walidacji

 

Uruchomienie benchmarku:

memory-benchmark.png

Wyniki:

  • Szczytowa pamięć znacznie spada
  • Czas wykonania pozostaje stabilny
  • ✅ Optymalizacja zatwierdzona
Zaawansowane programowanie wspomagane przez AI dla deweloperów

Prompty do benchmarkingu

🤖 Prompt – benchmarking:

Jesteś ekspertem ds. wydajności Pythona. Poniżej znajdują się dwa zrzuty tracemalloc: przed i po zmianie kodu.

  • Przed: {before_snapshot}
  • Po: {after_snapshot}

Porównaj szczytowe użycie pamięci i liczbę alokacji. Uzasadnij wnioski liczbami. Jeśli zmiana jest poprawą, wyjaśnij dlaczego. Jeśli nie, zaproponuj poprawki.

 

Skuteczne prompty do benchmarkingu:

  • Podaj dane przed/po
  • Określ istotne metryki
  • Proś o wnioski oparte na danych

 

✔ Sprawia, że optymalizacja jest powtarzalna i systematyczna

Zaawansowane programowanie wspomagane przez AI dla deweloperów

Czas na ćwiczenia!

Zaawansowane programowanie wspomagane przez AI dla deweloperów

Preparing Video For Download...