Trong Linux, bạn có thể sử dụng nm
để hiển thị tất cả các biểu tượng trong thực thi và sắp xếp chúng theo thứ tự ngược lại theo kích thước:
$ nm -CSr --size-sort <exe>
Options:
-C
demangles C++ tên.
-S
hiển thị kích thước biểu tượng.
--size-sort
sắp xếp biểu tượng theo kích thước.
-r
đảo ngược sắp xếp.
Nếu bạn muốn để có được những kết quả mỗi namespace hoặc mỗi lớp, bạn có thể chỉ grep
đầu ra cho 'namespace::
', 'namespace::class_name::
', , vv.
Nếu bạn chỉ muốn xem các biểu tượng được xác định trong tệp thực thi (không được xác định ở nơi khác, như trong thư viện), sau đó thêm --defined-only
. Sắp xếp theo kích thước nên cẩn thận vì điều này, vì các biểu tượng không xác định sẽ không có kích thước.
Đối với Windows, bạn vẫn sẽ có thể sử dụng nm
trên các tập tin nhị phân của bạn, vì nm
hỗ trợ COFF mã nhị phân. Bạn có thể cài đặt nm
qua cygwin, hoặc bạn có thể sao chép các cửa sổ của bạn thực thi vào một hộp linux và chạy nm
trên đó.
Bạn cũng có thể thử dumpbin
, đưa ra thông tin về nhị phân trên Windows. Bạn có thể nhận thông tin về các biểu tượng bằng công tắc /SYMBOLS
, nhưng có vẻ như nó không trực tiếp cung cấp thông tin về kích thước của chúng.
Trong trường hợp ai đó tự hỏi, hóa ra Flite (một công cụ chuyển văn bản thành giọng nói) là thành phần lớn nhất của 4 MB với tốc độ 1,8 MB IIRC, mà tôi đã phát hiện bằng cách xóa nó. – Qwertie