2011-10-24 3 views
6

Linux O.S.를 사용하는 일부 장치에 대해 S/W를 개발 중입니다. 그래서 내가 사용하는 라이브러리 (RAM/ROM)의 크기는 매우 중요합니다.리눅스에서 라이브러리의 크기를 측정하십시오.

내 소프트웨어에 필요한 RAM/ROM을 어떻게 쉽게 계산할 수 있습니까? (내가 사용한 도서관 포함). 경험 많은 Linux 개발자에게는 너무 쉬운 질문이라고 생각합니다.

+1

사실 이것은 어려운 질문입니다. 프로그램이 동적 메모리 할당'malloc'을 사용하거나 (특히 재귀가있는 경우) 중요하지 않은 호출 패턴을 가진다면 힙/스택에 필요한 RAM 양을 이론적으로 예측하는 것조차 불가능합니다. 일반적인 임베디드 프로그램의 스택 요구 사항을 결정하는 데 상당히 잘 작동하는 분석기가 있지만 종종 저렴하지는 않습니다. – Gilles

답변

3

실행

size <object> 

또는

size <archive> 

또는

size <shared-object> 

. 텍스트 프로그램 - 여기서

그것은 당신에게

text data  bss  dec  hex filename 

표를 줄 것이다 (또는 크로스 컴파일있어 경우에 "target-"크기는 팔-GCC를 사용하는 경우 크기를 팔) 크기, 초기화 된 전역 및 데이터 읽기 전용 데이터를 bss.

이 질문에 대답하는 동안, 최종 링크를 수행 할 때 수동으로 사용 가능한 메모리에 섹션을 배치 할 특정 LdScript (링커로 ld 사용시)를 사용하는 것이 좋습니다.

+1

이 도구는 정적 메모리 만 표시합니다. 런타임 메모리 사용이 더 커집니다. 프로그램에 따라 크게 달라지며 스택과 힙을 사용합니다. –

+0

"ldd"를 사용하여 공유 라이브러리를 확인할 수도 있습니다. "ldd"와 "size"를 사용하면 라이브러리를 포함하여 사용 된 ROM/RAM의 양을 추측 할 수 있습니다. – Wonil