هل تساءلت يومًا ما الذي يجعل ثنائيك كبيرًا؟ سوف تُظهر لك Bloaty ملف تعريف الحجم للثنائي حتى تتمكن من فهم ما يشغل مساحة في الداخل.
$ ./bloaty bloaty -d compileunits
FILE SIZE VM SIZE
-------------- --------------
34.8% 10.2Mi 43.4% 2.91Mi [163 Others]
17.2% 5.08Mi 4.3% 295Ki third_party/protobuf/src/google/protobuf/descriptor.cc
7.3% 2.14Mi 2.6% 179Ki third_party/protobuf/src/google/protobuf/descriptor.pb.cc
4.6% 1.36Mi 1.1% 78.4Ki third_party/protobuf/src/google/protobuf/text_format.cc
3.7% 1.10Mi 4.5% 311Ki third_party/capstone/arch/ARM/ARMDisassembler.c
1.3% 399Ki 15.9% 1.07Mi third_party/capstone/arch/M68K/M68KDisassembler.c
3.2% 980Ki 1.1% 75.3Ki third_party/protobuf/src/google/protobuf/generated_message_reflection.cc
3.2% 965Ki 0.6% 40.7Ki third_party/protobuf/src/google/protobuf/descriptor_database.cc
2.8% 854Ki 12.0% 819Ki third_party/capstone/arch/X86/X86Mapping.c
2.8% 846Ki 1.0% 66.4Ki third_party/protobuf/src/google/protobuf/extension_set.cc
2.7% 800Ki 0.6% 41.2Ki third_party/protobuf/src/google/protobuf/generated_message_util.cc
2.3% 709Ki 0.7% 50.7Ki third_party/protobuf/src/google/protobuf/wire_format.cc
2.1% 637Ki 1.7% 117Ki third_party/demumble/third_party/libcxxabi/cxa_demangle.cpp
1.8% 549Ki 1.7% 114Ki src/bloaty.cc
1.7% 503Ki 0.7% 48.1Ki third_party/protobuf/src/google/protobuf/repeated_field.cc
1.6% 469Ki 6.2% 427Ki third_party/capstone/arch/X86/X86DisassemblerDecoder.c
1.4% 434Ki 0.2% 15.9Ki third_party/protobuf/src/google/protobuf/message.cc
1.4% 422Ki 0.3% 23.4Ki third_party/re2/re2/dfa.cc
1.3% 407Ki 0.4% 24.9Ki third_party/re2/re2/regexp.cc
1.3% 407Ki 0.4% 29.9Ki third_party/protobuf/src/google/protobuf/map_field.cc
1.3% 397Ki 0.4% 24.8Ki third_party/re2/re2/re2.cc
100.0% 29.5Mi 100.0% 6.69Mi TOTAL
يؤدي Bloaty تحليلًا عميقًا للثنائي. يهدف Bloaty إلى استخدام ELF المخصص ، Dwarf ، و Mach-O ، إلى أن يعزى بدقة كل بايت من الثنائي إلى الرمز أو العجلة التي أنتجته. حتى أنه سوف يفصل الثنائي الذي يبحث عن إشارات إلى البيانات المجهولة.
يدعم الفتحة العديد من الميزات:
للحصول على معلومات مفصلة عن جميع ميزات Bloaty ، راجع وثائق المستخدم.
لمزيد من المعلومات حول التحليل الذي أجرته Bloaty ، يرجى الاطلاع على كيفية عمل Bloaty.
للبناء ، استخدم cmake
. على سبيل المثال:
$ cmake -B build -G Ninja -S .
$ cmake --build build
$ cmake --build build --target install
حزم Bloaty libprotobuf
و re2
و capstone
و pkg-config
كفيروسات فرعية GIT ، وتستخدم بناء protoc
من libprotobuf ، ولكنها تفضل إصدارات النظام لتلك التبعيات إذا كانت متوفرة. يتم تضمين جميع التبعيات الأخرى كفيروسات فرعية GIT.
إذا لم يتم استنساخ مستودع GIT مع --recursive
-يمكن التحقق من النطاق الفرعي مع:
$ git submodule update --init --recursive
لتشغيل الاختبارات ، راجع المعلومات في الاختبارات/readMe.md.
GitHub قضايا و PRS موضع ترحيب. يرجى تضمين الاختبارات عند الإمكان ، راجع: الاختبارات/readMe.md.
هذا ليس منتج Google الرسمي.