Performance-Optimierung mit GitHub Copilot

Softwareentwicklung mit GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Die stille Verlangsamung

 

nanobanana: half: Eine geteilte Illustration: links startet eine schnelle, reaktionsschnelle App als glatte Rakete, rechts ein langsamer drehender Ladeindikator, flacher Vektorstil

 

Performance-Probleme:

  • Tauchen in Unit-Tests nicht auf
  • Verursachen keine sofortigen Abstürze

 

📈 Code wirkt korrekt, skaliert aber nicht

Softwareentwicklung mit GitHub Copilot

Ein Engpass in freier Wildbahn

 

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

 

  • Code klappt bei kleinen Inputs
  • 1 Mio. Elemente → 1 Billion Vergleiche
  • $O(n^2)$-Algorithmus!

 

❌ Legt Produktion an einem starken Tag lahm

Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

Sag Copilot, worauf optimiert werden soll

nanobanana: half: Ein Performance-Dashboard mit Tachometern und Messanzeigen, die verschiedene Optimierungsindikatoren zeigen, flache Vektorillustration auf sauberem Hintergrund

 

  • Speed → schnellere Algorithmen, Caching, Batching
  • Memory → Ressourcen freigeben, Streaming, Generatoren
  • Beides → kompletter Performance-Check
Softwareentwicklung mit GitHub Copilot

Wirksame Performance-Prompts

 

Gezielte Optimierung

Optimiere #selection auf Performance und reduziere die Zeitkomplexität

Prüfe #selection auf Memory Leaks

 

Scan des gesamten Codebase

@workspace finde Funktionen mit verschachtelten Schleifen über großen Collections

Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

Performance in jede Empfehlung einbacken

 

.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

✅ Verhindert Performance-Engpässe schon beim Schreiben des Codes

Softwareentwicklung mit GitHub Copilot

Lass uns üben!

Softwareentwicklung mit GitHub Copilot

Preparing Video For Download...