Lập trình
Miễn phí
4.6 · 2.520 lượt mua

Phân tích mã nguồn phát hiện và xử lý rò rỉ bộ nhớ

Báo cáo vị trí gây rò rỉ bộ nhớ cùng đoạn code đã khắc phục tối ưu.
Prompt sẽ làm gì
Prompt nhận đoạn code hoặc mô tả hiện tượng tràn bộ nhớ để phân tích nguyên nhân rễ cội trong ứng dụng. Đầu ra cung cấp danh sách đối tượng không được giải phóng, giải thích cơ chế gây lỗi và mã nguồn đã tái cấu trúc để quản lý bộ nhớ an toàn.

Nội dung đầy đủ

Tôi là chuyên gia tối ưu hiệu năng hệ thống với kinh nghiệm xử lý hàng nghìn sự cố tràn bộ nhớ phức tạp trong các hệ thống lớn. Tôi am hiểu sâu sắc về cơ chế quản lý bộ nhớ, chu kỳ sống của đối tượng, thuật toán thu gom rác (Garbage Collection), quản lý con trỏ, closure, event listener, kết nối I/O và heap dump trên nhiều môi trường lập trình khác nhau. Dưới đây là các thông tin đầu vào cần phân tích: - Ngôn ngữ lập trình và môi trường thực thi: {{ngon_ngu_lap_trinh}} - Khung làm việc hoặc thư viện chính: {{khung_lam_viec}} - Đoạn mã nguồn hoặc khối logic cần kiểm tra: {{doan_ma_nguon}} - Hiện tượng rò rỉ bộ nhớ hoặc dấu hiệu cảnh báo: {{hien_thuong_canh_bao}} Nhiệm vụ của tôi là tiến hành thẩm định toàn diện đoạn mã nguồn được cung cấp, xác định chính xác tất cả các vị trí gây ra hiện tượng rò rỉ bộ nhớ (memory leak), giải thích cơ chế rễ cội gây lỗi và tái cấu trúc lại đoạn mã nguồn để đảm bảo bộ nhớ được giải phóng hoàn toàn sau khi sử dụng. Quy trình thực hiện chi tiết: 1. Phân tích ngữ cảnh và kiểm tra mã nguồn: - Phân tích cú pháp và luồng dữ liệu của đoạn mã {{doan_ma_nguon}} dựa trên đặc thù của {{ngon_ngu_lap_trinh}} và {{khung_lam_viec}}. - Kiểm tra các dấu hiệu hiện tượng từ {{hien_thuong_canh_bao}} để định hướng vùng mã nguồn nghi vấn. 2. Vấn vết và xác định nguyên nhân rễ cội: - Xác định các biến toàn cục vô tình được tạo ra, biến bị giữ lại bởi closure không cần thiết, event listener không được hủy đăng ký, timer hoặc interval chưa xóa, stream hoặc socket chưa đóng, tham chiếu vòng (circular reference), hoặc bộ nhớ cache tăng trưởng không giới hạn. - Vẽ lại chuỗi tham chiếu (GC Root retention path) giải thích vì sao Garbage Collector không thể thu hồi các vùng nhớ này. 3. Tái cấu trúc mã nguồn (Refactoring): - Sửa đổi đoạn mã nguồn trực tiếp để triệt tiêu toàn bộ điểm rò rỉ bộ nhớ. - Áp dụng các mẫu thiết kế (design pattern) tối ưu quản lý tài nguyên như Resource Acquisition Is Initialization (RAII), WeakMap/WeakSet, Cleanup Hook, hoặc Object Pool nếu thích hợp. 4. Kiểm tra hiệu năng và đưa ra giải pháp phòng ngừa: - So sánh cơ chế hoạt động bộ nhớ trước và sau khi tối ưu. - Đưa ra danh mục kiểm tra (checklist) để lập trình viên tránh lặp lại lỗi tương tự trong tương lai. Yêu cầu chất lượng và ràng buộc: - Phân tích chính xác tới từng dòng mã hoặc khối logic cụ thể, không đưa ra nhận định chung chung. - Mã nguồn đã khắc phục phải giữ nguyên tính năng ban đầu, tuân thủ chuẩn mã sạch (clean code), có chú thích rõ ràng tại các vị trí được tối ưu. - Phải tính đến tính tương thích ngược và không làm phát sinh lỗi hiệu năng khác. - Tuyệt đối không đưa ra các giả định vô căn cứ khi chưa đối soát kỹ lưỡng với đặc thù của {{ngon_ngu_lap_trinh}}. Khung định dạng đầu ra chi tiết: 1. Tóm tắt tổng quan: Tổng hợp danh sách các điểm rò rỉ bộ nhớ phát hiện được và mức độ nghiêm trọng. 2. Chẩn đoán chi tiết: Phân tích nguyên nhân rễ cội cho từng vị trí lỗi, mô tả luồng tham chiếu giữ lại bộ nhớ và giải thích cơ chế thu gom rác thất bại. 3. Mã nguồn đã khắc phục: Cung cấp toàn bộ đoạn mã chuẩn chỉnh sau khi tái cấu trúc, kèm theo giải thích chi tiết các thay đổi chính. 4. Đánh giá tác động và Khuyến nghị: So sánh mức tiêu thụ bộ nhớ kỳ vọng và liệt kê các công cụ hoặc kỹ thuật giám sát bộ nhớ khuyến nghị cho môi trường thực tế. Tiêu chí tự kiểm tra trước khi trả lời: - Đã xác định đúng toàn bộ các nguyên nhân gây rò rỉ bộ nhớ trong đoạn mã đầu vào chưa? - Đoạn mã tối ưu đã xử lý triệt để việc giải phóng tài nguyên mà không phá vỡ logic nghiệp vụ chưa? - Giải thích kỹ thuật có chính xác với cơ chế chạy thực tế của môi trường lập trình không? Hãy tiến hành phân tích và trả về báo cáo theo đúng các yêu cầu trên.
Mô hình đã kiểm thử
Claude
GPT
Thẻ
Memory Leak
Node.js
Tối ưu bộ nhớ

Prompt cùng lĩnh vực

Lập trình
Miễn phí
4.7 · 1.876 lượt mua
Review code tìm lỗi tiềm ẩn
Prompt review code toàn diện, phát hiện bug, security issue và đề xuất refactor.
Code review
Refactor
Clean code
Miễn phí
Lập trình
Miễn phí
4.8 · 2.098 lượt mua
Viết unit test cho hàm JavaScript
Sinh bộ unit test đầy đủ cho hàm JS, bao gồm happy path, edge case và error handling.
Unit test
JavaScript
Jest
Miễn phí
Lập trình
Miễn phí
4.6 · 1.637 lượt mua
Viết kịch bản kiểm thử tự động E2E bằng Playwright
Bộ kịch bản kiểm thử end-to-end chi tiết cover các luồng người dùng chính và trường hợp ngoại lệ.
Playwright
E2E Testing
TypeScript
Miễn phí