
Khắc phục các vấn đề về hiệu suất, phiên bản AI
URL bài viết: https://p403n1x87.github.io/busting-performance-issues-ai-edition.html URL bình luận: https://news.ycombinator.com/item?id=48178235 Điểm: 1 Bình luận: 0
Trung tâm Heliopolis - Khắc phục các vấn đề về hiệu suất, phiên bản AI
cd ~
Giới thiệu
Khắc phục các vấn đề về hiệu suất, phiên bản AI
Thứ Bảy, ngày 16/5/2026
Đọc trong 11 phút
Lập trình
python
profiling
optimisation
Các tác nhân mã hóa đang nhanh chóng trở thành công cụ chính tạo ra mã nguồn mới, nhưng chúng cũng được sử dụng để xem xét mã, tìm và sửa lỗi. Làm thế nào để sử dụng chúng một cách hiệu quả nhất để phát hiện và khắc phục các vấn đề về hiệu suất?
Mục lục:
Giới thiệu AI
bytecode: Nghiên cứu điển hình của chúng tôi
Một chút thiết lập cần thiết
Thiết lập đường cơ sở
Truyền đạt ý định của chúng tôi cho tác nhân
Trong một nhiệm vụ
Một chuyến tham quan có hướng dẫn về các hồ sơ
Phần thưởng: Học cách đọc hồ sơ
Dữ liệu hồ sơ có thực sự cần thiết không?
Kết luận
Trong một bài đăng trước, chúng tôi đã xem xét cách tìm và giải quyết các vấn đề về hiệu suất ẩn trong bất kỳ cơ sở mã nào bằng cách đơn giản chạy một số mã của nó thông qua một công cụ phân tích hiệu suất (profiler). Điều đơn giản nhất chúng ta có thể làm, đặc biệt khi chúng ta tiếp cận một cơ sở mã mới hoàn toàn xa lạ, là chạy bộ kiểm thử của nó (hoặc một tập hợp con) và xem các đường dẫn mã nào đang được thực thi. Khi chúng ta xem xét chúng thông qua một công cụ phân tích hiệu suất, cách tiếp cận điển hình là bắt đầu điều tra các vùng cao nguyên của nó, tức là các hàm ở trên cùng (hoặc dưới cùng, tùy thuộc vào hướng của biểu đồ ngọn lửa!) có thời gian riêng lớn nhất. Đây thường là nơi có cơ hội cải thiện lớn nhất. Tất nhiên, có thể có những trường hợp một hàm chỉ đơn giản lặp lại công việc không cần thiết, và điều này sẽ không hiển thị thông qua việc quét cao nguyên trực quan đơn thuần.
Giới thiệu AI
Chúng ta có thể tự động hóa quá trình này, và có lẽ tăng cường nó, với sức mạnh của các tác nhân mã hóa tiên tiến, mạnh mẽ nhất hiện nay không?
Các tác nhân mã hóa hiện đại đã đạt đến mức độ tinh vi mà chúng có thể hiểu và sửa đổi các cơ sở mã một cách hiệu quả với kết quả thực tế tốt. Các điểm chuẩn như SWE-bench (kiểm tra sửa lỗi đa tệp trong các kho lưu trữ GitHub thực) và LiveCodeBench (sử dụng các vấn đề lập trình cạnh tranh mới để tránh nhiễm dữ liệu) cho thấy các mô hình tiên tiến hiện đạt tỷ lệ vượt qua cao. Tuy nhiên, vẫn còn khá nhiều dư địa để cải thiện: các nghiên cứu về tạo mã cấp lớp trong thế giới thực cho thấy một khoảng cách đáng kể giữa hiệu suất điểm chuẩn tổng hợp (84-89%) và hiệu suất dự án thực tế (25-34%) (arxiv-2510.26130), làm nổi bật cả tiến bộ đã đạt được và không gian để cải thiện trong các kịch bản mã hóa thực tế.
Trong bài đăng này, chúng tôi sẽ khám phá mức độ hiệu quả của một tác nhân mã hóa trong việc đưa ra các cải tiến hiệu suất khi nó được cung cấp dữ liệu phân tích hiệu suất tập trung. Tuy nhiên, trọng tâm là phương pháp và các công cụ liên quan, chứ không phải là việc đánh giá một tập hợp các mô hình để xác định mô hình nào tốt hơn trong việc tìm kiếm các vấn đề về hiệu suất.
bytecode: Nghiên cứu điển hình của chúng tôi
Để làm rõ hơn, chúng tôi sẽ tập trung vào một dự án thực tế: chúng tôi sẽ cố gắng cải thiện hiệu suất của thư viện bytecode.
bytecode là một thư viện Python để tạo và sửa đổi mã bytecode Python. Nó cung cấp một lớp trừu tượng hóa trên các lệnh bytecode cấp thấp của Python, cho phép bạn tạo các đối tượng bytecode theo chương trình, chuyển đổi chúng thành các đối tượng mã thực tế, và thậm chí kiểm tra và sửa đổi bytecode của mã hiện có. Nó hữu ích cho lập trình siêu cấp (metaprogramming), tạo mã động và phân tích bytecode.
Đây là những công cụ chúng tôi sẽ sử dụng cho thử nghiệm nhỏ của mình, tất cả đều miễn phí:
Austin, để phân tích hiệu suất Python, có thể dễ dàng cài đặt bằng lệnh "pip install austin-dist".
Tiện ích mở rộng Austin VS Code, có thể dễ dàng cài đặt từ các kho ứng dụng của VS Code. Phiên bản mới nhất đi kèm với một máy chủ MCP có thể cung cấp dữ liệu phân tích hiệu suất và các lệnh điều hướng biểu đồ ngọn lửa (flame graph) cho một tác nhân lập trình.
Opencode với mô hình miễn phí MiniMax M2.5 được sử dụng làm thiết lập tác nhân lập trình của chúng tôi.
Tiện ích mở rộng Opencode VS Code để không cần rời khỏi VS Code trong suốt quá trình thử nghiệm của chúng tôi.
Yêu cầu một chút thiết lập
Sau khi đã sao chép kho lưu trữ bytecode mà chúng ta sẽ làm việc và mở nó trong VS Code, có một số thiết lập tối thiểu cần thực hiện. Chúng ta cần cho phép tác nhân lập trình khám phá Austin MCP. Nếu bạn đang sử dụng GitHub Copilot thay vì Opencode, không cần thiết lập bổ sung cho việc này, vì máy chủ Austin MCP tích hợp nguyên bản với nó. Nếu không, chúng ta cần cho phép các tác nhân lập trình khác khám phá máy chủ. Điều này đơn giản như chạy lệnh Austin: Generate .mcp.json: nhấn Ctrl+Shift+P, gõ austinmcp và nhấn Enter. Vậy là xong. Tuy nhiên, chưa hoàn toàn, vì chúng tôi đã quyết định sử dụng Opencode cho thử nghiệm của mình, và tại thời điểm viết bài, nó vẫn chưa hỗ trợ tệp .mcp.json. Vì vậy, thay vào đó, chúng tôi mở một phiên Opencode bằng Ctrl+Escape và lịch sự yêu cầu tác nhân chuyển đổi cấu hình .mcp.json thành định dạng mà Opencode hiểu được.
Máy chủ Austin MCP sử dụng một cổng tạm thời để chạy, vì vậy mỗi khi bạn mở lại VS Code, một cổng mới sẽ được gán cho nó. Nếu một tệp .mcp.json đã được tạo trước đó, tiện ích mở rộng Austin sẽ tự động cập nhật cổng để bạn không phải tạo lại nó mỗi lần. Tuy nhiên, Opencode sẽ không làm điều này trừ khi bạn hướng dẫn nó.
Sau khi Opencode tự cấu hình, bạn có thể phải bắt đầu một phiên mới để nó nhận kết nối đến máy chủ.
Chúng tôi đã yêu cầu Opencode tự cấu hình dựa trên nội dung của tệp .mcp.json.
Cuối cùng, hãy tạo một môi trường ảo nơi chúng ta có thể cài đặt thư viện ở chế độ chỉnh sửa để có thể nhanh chóng kiểm tra các thay đổi của mình. Chọn phiên bản Python yêu thích của bạn (một phiên bản mà thư viện hỗ trợ, ví dụ: 3.13) và chạy:
cd /path/to/bytecode
python3.13 -m venv .venv
source .venv/bin/activate
pip install -e .
Sau bước này, chúng ta đã sẵn sàng để bắt đầu thử nghiệm!
Thiết lập đường cơ sở
Là bước đầu tiên, chúng ta có lẽ nên cố gắng thiết lập một đường cơ sở. Điều này sẽ cho chúng ta biết điểm khởi đầu về hiệu suất để đảm bảo rằng chúng ta có một tín hiệu rõ ràng rằng những thay đổi mà tác nhân lập trình đưa ra thực sự đang cải thiện.




Nguồn tin: Hacker News AI — Tác giả: p403n1x87. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.