Valgrind는 whois
방금 버전을 요구하더라도 많은 메모리 를 할당 한다고보고합니다 .
$ valgrind whois --version
==18086== Memcheck, a memory error detector
==18086== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==18086== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==18086== Command: whois --version
==18086==
Version 5.2.11.
Report bugs to <md+whois@linux.it>.
==18086==
==18086== HEAP SUMMARY:
==18086== in use at exit: 65 bytes in 1 blocks
==18086== total heap usage: 56 allocs, 55 frees, 15,171 bytes allocated
==18086==
==18086== LEAK SUMMARY:
==18086== definitely lost: 0 bytes in 0 blocks
==18086== indirectly lost: 0 bytes in 0 blocks
==18086== possibly lost: 0 bytes in 0 blocks
==18086== still reachable: 65 bytes in 1 blocks
==18086== suppressed: 0 bytes in 0 blocks
==18086== Rerun with --leak-check=full to see details of leaked memory
==18086==
==18086== For counts of detected and suppressed errors, rerun with: -v
==18086== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
다른 여러 유틸리티를 실험 한 결과 이것이 많은 유틸리티에 공통적이라는 것을 알았습니다. 간단한 명령을 위해 많은 메모리를 할당합니다. gcc를보십시오!
$ valgrind gcc --version
==18141== Memcheck, a memory error detector
==18141== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==18141== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==18141== Command: gcc --version
==18141==
gcc (Ubuntu 5.3.1-14ubuntu2.1) 5.3.1 20160413
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
==18141==
==18141== HEAP SUMMARY:
==18141== in use at exit: 116,660 bytes in 62 blocks
==18141== total heap usage: 171 allocs, 109 frees, 135,692 bytes allocated
==18141==
==18141== LEAK SUMMARY:
==18141== definitely lost: 4,552 bytes in 13 blocks
==18141== indirectly lost: 0 bytes in 0 blocks
==18141== possibly lost: 0 bytes in 0 blocks
==18141== still reachable: 112,108 bytes in 49 blocks
==18141== suppressed: 0 bytes in 0 blocks
==18141== Rerun with --leak-check=full to see details of leaked memory
==18141==
==18141== For counts of detected and suppressed errors, rerun with: -v
==18141== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
1
그렇다면 whois는 약 100 바이트의 메모리를 사용해서는 안되며 gcc는 135KB를 많이 사용해서는 안된다고 생각합니까? 정말!?!?! 그것이하는 일을 알고 싶다면 소스 코드를보십시오. 당신이 그것을 최적화하는 프로그램을 배우는 데 인생을 보내고 있더라도 일부 기능을 제거하지 않고는 그것을 줄일 수 없을 것입니다.
—
Julie Pelletier
엠블럼 ... "hello, world"프로그램을 작성하고 얼마나 많은 메모리를 할당하는지 보시겠습니까? 심지어 malloc (또는 동등한) 호출을하지 않더라도? gcc의 경우 컴파일러가 얼마나 복잡한 지에 대한 단서가 있습니까?
—
Jamie Hanrahan 2016 년