Haben Sie sich jemals gefragt, was Ihre Binärdehnung groß macht? Bloaty zeigt Ihnen ein Größenprofil des Binärs, sodass Sie verstehen können, was sich im Inneren Platz einnimmt.
$ ./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 führt eine tiefe Analyse der Binärdatoren durch. Aufblättere Parsers mit benutzerdefinierten Elfen, Zwerg und Mach-O-Parern zielen aufblühend, jedes Byte des Binärzusammenhiebs auf das Symbol oder die Kompileseinheit zuzuschreiben, die es produziert haben. Es wird sogar die Binärdatei nach Verweise auf anonyme Daten abbauen.
Aufblähs unterstützt viele Funktionen:
Ausführliche Informationen zu allen Funktionen von Bloaty finden Sie in der Benutzerdokumentation.
Weitere Informationen zu der von Bloaty durchgeführten Analyse finden Sie unter der Art und Weise, wie blähend funktioniert.
Verwenden Sie cmake
, um zu bauen. Zum Beispiel:
$ cmake -B build -G Ninja -S .
$ cmake --build build
$ cmake --build build --target install
Bloaty Bündel libprotobuf
, re2
, capstone
und pkg-config
als Git-Submodules und verwenden protoc
Build von libProtobuf, bevorzugt jedoch die Versionen des Systems dieser Abhängigkeiten, falls verfügbar. Alle anderen Abhängigkeiten sind als Git -Submodul enthalten.
Wenn das Git -Repository nicht mit dem --recursive
kloniert wurde, können die Submodules mit:
$ git submodule update --init --recursive
Um die Tests auszuführen, finden Sie in den Informationen in Tests/Readme.md.
Github -Probleme und PRs willkommen. Bitte fügen Sie nach Möglichkeit Tests hinzu, siehe: Tests/Readme.md.
Dies ist kein offizielles Google -Produkt.