SOS hoặc PssCor là một nơi tốt để bắt đầu, dọc theo bên WinDbg.
Khi bạn đã sắp xếp xong; đính kèm WinDbg vào quá trình của bạn, tải phần mở rộng trình gỡ rối. Ví dụ:
.load C:\pathtoextensions\psscor4.dll
Sau đó, bạn có thể phát hành các !dumpheap
hoặc !dumpstack
lệnh.
Kết quả của cả hai lệnh này rất thô. !dumpheap -stat
sẽ cung cấp cho bạn tổng quan "thống kê" về vùng heap của bạn. Kiểu, số được cấp phát và tổng số byte cho tất cả các phân bổ.
Đây không phải là nhiệm vụ cực kỳ đơn giản. Nó sẽ mất một thời gian để có được đủ thực hành với WinDbg nếu bạn không sử dụng nó trước đây.
Việc bạn có thể làm là đặt điểm ngắt trên phương thức sử dụng !bpmd
và sử dụng các lệnh được đề cập ở trên, sau đó bước qua sử dụng lệnh p
và chạy lại lệnh.
Tôi chắc chắn có các công cụ thương mại khác như ANTS Profiler hoặc dotTrace có thể hoàn thành công việc - nhưng tôi không có nhiều kinh nghiệm với một trong hai công cụ.
Khi bạn đã bắt đầu, bạn có thể hỏi (mới) các câu hỏi cụ thể hơn về SOS hoặc Psscor.
Đó là * nhiều * dữ liệu và có thể sẽ không cho bạn biết nhiều. (Hoặc tệ hơn, bạn sẽ phàn nàn rằng nó không bao giờ thu thập rác trong hai mươi dòng mà bạn nhìn vào.) Nếu bạn có nghi ngờ về phân bổ bộ nhớ và thu gom rác thải, đặt câu hỏi và/hoặc tìm kiếm giải thích mức cao, có nhiều khả năng dọn dẹp mọi thứ. – delnan
Chắc chắn, tôi chắc chắn sẽ làm điều này ngay bây giờ trở đi – funsukvangdu