2013-04-17 43 views
5

Khi tiêu đề câu hỏi cho biết tôi muốn biết nếu có cách nào để có được kích thước heap của quy trình hiện tại.Cách lấy kích thước heap trên cửa sổ Nền tảng

+0

Do cách đống việc, kích thước heap không phải là thông tin hữu ích thường. Bạn có thể hỏi làm thế nào để biết * phân bổ đống lớn nhất có thể được thực hiện *? –

+0

Không, điều tôi muốn biết là Kích thước Heap đã Sử dụng – Kira

+0

Ngoài những gì @DrewDormann đã nói, câu hỏi của bạn rất mơ hồ. Bạn có muốn kích thước heap cho hệ thống như một toàn thể (có thực sự không có điều đó) hoặc cho một quá trình cụ thể (mà có thể có nhiều đống - một cho mỗi thread)? Tại sao thông tin này lại cần thiết? –

Trả lời

6

Bạn có thể làm điều này - nhưng tôi nghĩ nó sẽ chậm và đau đớn.

  1. Sử dụng GetProcessHeaps để liệt kê thông qua quá trình đống.
  2. Sử dụng HeapWalk để liệt kê các khối trong mỗi vùng.
  3. Sử dụng HeapSize để có được kích thước và loại hình khối khác nhau
+0

@NikBougalis - biến cục bộ được tạo trên ngăn xếp chứ không phải trên vùng heap? – user93353

+1

D'oh! Quá sớm vào buổi sáng và không đủ cà phê. Đã xóa nhận xét ngớ ngẩn. –

+0

Không cần sử dụng HeapSize vì PROCESS_HEAP_ENTRY đã chứa tất cả thông tin về kích thước. – Alex

Các vấn đề liên quan