Tối ưu hóa bộ nhớ với AI

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Từ thời gian sang độ phức tạp không gian

 

Hiệu năng không chỉ là tốc độ:

  • Mức dùng bộ nhớ
  • Khả năng mở rộng
  • Tăng trưởng dữ liệu theo thời gian

Độ phức tạp thời gian so với không gian

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Kiểm thử ở quy mô lớn

So sánh quy mô cơ sở dữ liệu

 

  • ✔ Tập nhỏ: phù hợp học tập
  • 📈 Vấn đề bộ nhớ: xuất hiện ở quy mô lớn
  • 💾 CSDL thực: gần môi trường sản xuất
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Cảnh báo tăng trưởng bộ nhớ

memory-grouth.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

AI diễn giải dấu vết bộ nhớ

 

Diễn giải tracemalloc

 

Kết quả AI:

  • Lượng bộ nhớ giữ lại lớn
  • Cấu trúc trung gian lặp lại
  • Trong các thao tác tổng hợp
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Xác định nguyên nhân gốc

Nguyên nhân gốc

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

AI đề xuất cách khắc phục

 

🤖 Gợi ý nghẽn bộ nhớ:

Dựa trên điểm nghẽn bộ nhớ đã xác định, đề xuất cách refactor để giảm đỉnh sử dụng bộ nhớ. Cân nhắc streaming, tái sử dụng dữ liệu, hoặc biểu diễn thay thế.

 

Chiến lược đề xuất:

  • Giảm cấp phát trung gian
  • Tái sử dụng bộ đệm
  • Thêm bộ nhớ đệm (cache)
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Đánh đổi khi dùng cache

Cân bằng đánh đổi của cache

 

Thận trọng với bộ nhớ đệm:

  • ✔ Có thể cải thiện hiệu năng
  • ❌ Cũng có thể tăng bộ nhớ
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Đánh đổi khi dùng cache

 

🤖 Gợi ý so sánh đánh đổi:

Với khối lượng công việc và mẫu truy cập này, chiến lược cache có giảm tổng bộ nhớ không, hay có thể làm tệ hơn? Giải thích các đánh đổi.

ai-cache-suggestion.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

AI triển khai

ai-code-fixes.png

 

Như mọi khi:

  • Rà soát kỹ
  • Xác thực trước khi chấp nhận thay đổi
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Kết quả xác thực

 

Chạy benchmark:

memory-benchmark.png

Kết quả:

  • Đỉnh bộ nhớ giảm đáng kể
  • Thời gian chạy ổn định
  • ✅ Tối ưu hóa được xác nhận
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Gợi ý cho benchmark

🤖 Gợi ý benchmark:

Bạn là chuyên gia hiệu năng Python. Dưới đây là hai snapshot tracemalloc, trước và sau khi đổi mã.

  • Trước: {before_snapshot}
  • Sau: {after_snapshot}

So sánh đỉnh bộ nhớ và số lần cấp phát. Nêu số liệu để chứng minh. Nếu là cải thiện, giải thích vì sao. Nếu không, đề xuất cần sửa gì.

 

Gợi ý benchmark hiệu quả:

  • Cung cấp trước/sau
  • Chỉ rõ chỉ số quan trọng
  • Yêu cầu kết luận dựa trên bằng chứng

 

✔ Giúp tối ưu hóa lặp lạicó hệ thống

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Ayo berlatih!

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Preparing Video For Download...