문제

코드 줄을 계산하기위한 스크립트/도구가 많이 있으며 일부는 코드 줄 측면에서 함수 크기를 계산하기위한 도구가 많이 있습니다. 그러나 여기서는 생성 된 코드의 바이트 측면에서 기능 크기를 측정하는 방법을 찾고 있습니다.

이 정보를 .lib 또는 .dll에서 추출하는 방법/도구를 아는 사람이 있습니까?

예를 들어, .lib 또는 .dll에서 함수 이름을 나열하는 방법과 시작 주소를 나열하는 방법을 알고 있지만 아직 메모리 발자국을 얻을 방법을 찾지 못했습니다.

추신 : Windows 플랫폼에서 솔루션을 찾고 있지만 대체 시스템에 대한 모든 답변을 환영합니다.

도움이 되었습니까?

해결책

나는 그것이 당신이 추구한지 확실하지 않지만, 당신은 per로 맵 파일을 구문 분석 할 수 있습니다. 이 튜토리얼.

또한 유료 솔루션을 받고 있다면 붉은 게이트의 개미 프로파일 러 합리적입니다.

다른 팁

유닉스에서 size 명령은 다음에 대한 정보를 제공합니다.

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:

내 시스템 주변의 반 랜덤 파일 - Sun Sparc Running Solaris 10, 사용 size ~에서 /usr/ccs/bin (GNU 버전은 아니지만 비슷한 정보를 제공 할 가능성이 높습니다).

암소 비슷한 일종의 영양 size Cygwin에 따라 :

$ 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)

그러나 DLL (c : windows twain.dll)에서 실행될 때 그다지 도움이되지 않을 수 있습니다. size 파일 유형을 인식하지 못한다고 말합니다. Otoh, '.lib'파일을 이해하는 것 같습니다.

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top