Frage

Es gibt viele Skript / Tools für die Codezeile zu zählen, und einige Funktionen Größe in Bezug auf die Codezeile zu zählen. Aber hier ich bin auf der Suche nach einer Art und Weise Funktion Größe in Bytes des generierten Codes zu messen.

Kennt jemand einen Weg / Werkzeuge, um diese Informationen von einem LIB oder einer DLL zu extrahieren?

Zum Beispiel weiß ich, wie Funktionsnamen zur Liste von einer LIB oder DLL, und ihrer Startadresse, aber ich habe keine Möglichkeit, noch zu bekommen ihren Speicherbedarf gefunden.

. PS: Ich bin Look für eine Lösung auf Windows-Plattform, aber jede Antwort auf ein alternatives System ist willkommen

War es hilfreich?

Lösung

Ich bin mir nicht sicher, es ist ganz das, was Sie nach, aber man könnte versuchen, die Map-Datei per dieses Tutorial .

Auch wenn Sie nach einer Bezahl-Lösung, die ANTS Profiler von Red-Gate angemessen ist.

Andere Tipps

Auf Unix, der size Befehl gibt Ihnen Informationen über das:

Black JL: size /usr/lib/libc.so.1
909301 + 32017 + 6731 = 948049
Black JL: size ~/lib/libjl.a
/work1/jleffler/lib/libjl.a[affbak.o]: 4849 + 44 + 4 = 4897
/work1/jleffler/lib/libjl.a[affstd.o]: 5488 + 48 + 4 = 5540
/work1/jleffler/lib/libjl.a[base64.o]: 8772 + 9 + 320 = 9101
/work1/jleffler/lib/libjl.a[basedigit.o]: 841 + 0 + 0 = 841
/work1/jleffler/lib/libjl.a[basename.o]: 996 + 0 + 0 = 996
/work1/jleffler/lib/libjl.a[bitmap.o]: 3876 + 8 + 4096 = 7980
...lots of entries omitted...
Black JL: size ~/bin/sqlcmd.64
169694 + 17728 + 8280 = 195702
Black JL: size cc3e_*.o | so
cc3e_fixed_from_gregorian.o: 1906 + 0 + 0 = 1906
cc3e_gregorian_date.o: 684 + 0 + 0 = 684
cc3e_gregorian_epoch.o: 707 + 0 + 0 = 707
cc3e_gregorian_from_fixed.o: 1729 + 0 + 0 = 1729
cc3e_gregorian_year_from_fixed.o: 1625 + 0 + 0 = 1625
cc3e_last_kday.o: 742 + 0 + 0 = 742
cc3e_nth_kday.o: 1123 + 0 + 0 = 1123
Black JL:

semistochastische Dateien aus um mein System -., Die Solaris Sun SPARC 10, mit size von /usr/ccs/bin (nicht der GNU-Version, aber es ist wahrscheinlich ähnliche Informationen geben)

GNU size unter Cygwin sagt:

$ size libjl.a
text    data     bss     dec     hex filename
 800      64      16     880     370 affbak.o (ex libjl.a)
1008      64      16    1088     440 affstd.o (ex libjl.a)
 176       0       0     176      b0 basedigit.o (ex libjl.a)
 208       0       0     208      d0 basename.o (ex libjl.a)
 544     320    4096    4960    1360 bitmap.o (ex libjl.a)
 816       0      16     832     340 block.o (ex libjl.a)

Allerdings, die nicht viel helfen kann - wenn sie auf einer DLL ausgeführt (C: \ WINDOWS \ twain.dll), sagt GNU size es nicht den Dateityp nicht erkennt. OTOH, es scheint ‚Lib‘ Dateien zu verstehen:

jleffler@IBM-027DF09B37F /cygdrive/c/notes/jvm/bin
$ size jawt.lib
   text    data     bss     dec     hex filename
     63      30       0      93      5d jawt.dll (ex jawt.lib)
     63      20       0      83      53 jawt.dll (ex jawt.lib)
     63       8       0      71      47 jawt.dll (ex jawt.lib)
      8      26       0      34      22 jawt.dll (ex jawt.lib)

jleffler@IBM-027DF09B37F /cygdrive/c/notes/jvm/bin
$ ls -l jawt.lib
-rwxrwxrwx+ 1 jleffler None 1692 Oct 25  2007 jawt.lib
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top