Optimasi performa dengan GitHub Copilot

Pengembangan Perangkat Lunak dengan GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Perlambatan yang senyap

 

nanobanana: half: Ilustrasi terbelah membandingkan aplikasi cepat dan responsif sebagai roket mulus yang meluncur di satu sisi dan indikator pemuatan berputar lambat di sisi lain, gaya vektor datar

 

Masalah performa:

  • Tidak muncul di unit test
  • Tidak menyebabkan crash langsung

 

📈 Kode tampak benar, tetapi tidak skalabel

Pengembangan Perangkat Lunak dengan GitHub Copilot

Bottleneck di alam liar

 

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

 

  • Kode baik untuk input kecil
  • 1 juta item → 1 triliun perbandingan
  • Algoritma $O(n^2)$!

 

❌ Menjatuhkan produksi di hari sibuk

Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

Jelaskan ke Copilot apa yang dioptimalkan

nanobanana: half: Dasbor performa dengan speedometer dan pengukur metrik yang menampilkan berbagai indikator optimasi, ilustrasi vektor datar di latar bersih

 

  • Kecepatan → algoritma lebih cepat, caching, batching
  • Memori → pembersihan resource, streaming, generator
  • Keduanya → tinjauan performa menyeluruh
Pengembangan Perangkat Lunak dengan GitHub Copilot

Prompt performa yang efektif

 

Optimasi terarah

Optimalkan #selection untuk performa dan kurangi kompleksitas waktu

Tinjau #selection untuk kebocoran memori

 

Pindai seluruh codebase

@workspace cari fungsi dengan loop bersarang atas koleksi besar

Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

Tanamkan performa di setiap saran

 

.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

✅ Mencegah bottleneck performa ditulis ke dalam kode

Pengembangan Perangkat Lunak dengan GitHub Copilot

Ayo berlatih!

Pengembangan Perangkat Lunak dengan GitHub Copilot

Preparing Video For Download...