Optimizarea performanței cu GitHub Copilot

Dezvoltare software cu GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Încetinirea silențioasă

 

nanobanana: half: O ilustrație împărțită care contrastează o aplicație rapidă reprezentată ca o rachetă lansată pe o parte și un indicator de încărcare lent pe cealaltă, stil vectorial plat

 

Probleme de performanță:

  • Nu apar în testele unitare
  • Nu provoacă erori imediate

 

📈 Codul pare corect, dar nu scalează

Dezvoltare software cu GitHub Copilot

Un blocaj în practică

 

def find_common(list1, list2):
    common = []
    for item in list1:
        for item2 in list2:
            if item == item2:
                common.append(item)
    return common

 

  • Codul funcționează bine pentru intrări mici
  • 1 milion de elemente → 1 trilion de comparații
  • Algoritm $O(n^2)$!

 

❌ Blochează producția într-o zi aglomerată

Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

Specificați obiectivul de optimizare pentru Copilot

nanobanana: half: Un tablou de bord de performanță cu cadrane și indicatori de metrici care arată diferiți indicatori de optimizare, ilustrație vectorială plată pe fundal curat

 

  • Viteză → algoritmi mai rapizi, caching, batching
  • Memorie → eliberare resurse, streaming, generatoare
  • Ambele → revizuire completă a performanței
Dezvoltare software cu GitHub Copilot

Prompturi eficiente pentru performanță

 

Optimizare țintită

Optimizați #selection pentru performanță și reduceți complexitatea temporală

Verificați #selection pentru scurgeri de memorie

 

Scanare la nivel de bază de cod

@workspace găsiți funcții cu bucle imbricate peste colecții mari

Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

Integrați performanța în fiecare sugestie

 

.github/copilot-instructions.md

## Performance standards
- Prefer set or dict lookups over nested loops
- Use context managers for files, connections, and sockets
- Avoid loading entire datasets into memory, use generators or streaming

✅ Previne blocajele de performanță din cod

Dezvoltare software cu GitHub Copilot

Să exersăm!

Dezvoltare software cu GitHub Copilot

Preparing Video For Download...