Optimiser les performances avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Le ralentissement silencieux

 

nanobanana: half: Une illustration scindée opposant une application rapide et réactive, représentée par une fusée qui décolle, à un indicateur de chargement lent de l’autre côté, style vectoriel plat

 

Problèmes de performance :

  • N’apparaissent pas dans les tests unitaires
  • Ne provoquent pas de crash immédiat

 

📈 Le code semble correct, mais ne passe pas à l’échelle

Développement logiciel avec GitHub Copilot

Un goulot d’étranglement à l’état sauvage

 

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

 

  • Le code fonctionne pour de petites entrées
  • 1 million d’éléments → 1 billion de comparaisons
  • Algorithme en O(n^2) !

 

❌ Fait tomber la prod un jour de forte charge

Développement logiciel avec GitHub Copilot

[screencast]

Développement logiciel avec GitHub Copilot

[screencast]

Développement logiciel avec GitHub Copilot

Indiquez à Copilot quoi optimiser

nanobanana: half: Un tableau de bord de performance avec des cadrans de vitesse et des jauges affichant divers indicateurs d’optimisation, illustration vectorielle sur fond épuré

 

  • Vitesse → algorithmes plus rapides, cache, traitement par lots
  • Mémoire → libération des ressources, streaming, générateurs
  • Les deux → revue de performance complète
Développement logiciel avec GitHub Copilot

Des invites de performance efficaces

 

Optimisation ciblée

Optimiser #selection pour la performance et réduire la complexité temporelle

Vérifier #selection pour des fuites mémoire

 

Analyse sur tout le code

@workspace trouver les fonctions avec boucles imbriquées sur de grandes collections

Développement logiciel avec GitHub Copilot

[screencast]

Développement logiciel avec GitHub Copilot

[screencast]

Développement logiciel avec GitHub Copilot

Intégrer la performance dans chaque suggestion

 

.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

✅ Empêche l’écriture de goulots d’étranglement de performance dans le code

Développement logiciel avec GitHub Copilot

Passons à la pratique !

Développement logiciel avec GitHub Copilot

Preparing Video For Download...