Tối ưu hiệu năng với GitHub Copilot

Phát triển phần mềm với GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Sự chậm lại âm thầm

 

nanobanana: half: Minh họa chia đôi: một ứng dụng phản hồi nhanh như tên lửa phóng mượt mà ở một bên và biểu tượng tải quay chậm ở bên kia, phong cách vector phẳng

 

Vấn đề hiệu năng:

  • Không xuất hiện trong unit test
  • Không gây crash ngay lập tức

 

📈 Code có vẻ đúng nhưng không scale

Phát triển phần mềm với GitHub Copilot

Nút thắt ngoài thực tế

 

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

 

  • Code chạy tốt với đầu vào nhỏ
  • 1 triệu phần tử → 1 nghìn tỷ phép so sánh
  • Thuật toán $O(n^2)$!

 

Làm sập production vào ngày cao điểm

Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

Nói cho Copilot cần tối ưu điều gì

nanobanana: half: Bảng điều khiển hiệu năng với đồng hồ tốc độ và thước đo hiển thị các chỉ số tối ưu khác nhau, minh họa vector phẳng trên nền sạch

 

  • Tốc độ → thuật toán nhanh hơn, caching, batching
  • Bộ nhớ → giải phóng tài nguyên, streaming, generator
  • Cả hai → rà soát hiệu năng tổng thể
Phát triển phần mềm với GitHub Copilot

Prompt hiệu năng hiệu quả

 

Tối ưu có mục tiêu

Tối ưu #selection để tăng hiệu năng và giảm độ phức tạp thời gian

Rà soát #selection để tìm rò rỉ bộ nhớ

 

Quét toàn codebase

@workspace tìm hàm có vòng lặp lồng nhau trên tập lớn

Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

Tích hợp hiệu năng vào mọi gợi ý

 

.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

Ngăn nút thắt cổ chai hiệu năng ngay từ khi viết code

Phát triển phần mềm với GitHub Copilot

Ayo berlatih!

Phát triển phần mềm với GitHub Copilot

Preparing Video For Download...