Linux O.S.를 사용하는 일부 장치에 대해 S/W를 개발 중입니다. 그래서 내가 사용하는 라이브러리 (RAM/ROM)의 크기는 매우 중요합니다.리눅스에서 라이브러리의 크기를 측정하십시오.
내 소프트웨어에 필요한 RAM/ROM을 어떻게 쉽게 계산할 수 있습니까? (내가 사용한 도서관 포함). 경험 많은 Linux 개발자에게는 너무 쉬운 질문이라고 생각합니다.
Linux O.S.를 사용하는 일부 장치에 대해 S/W를 개발 중입니다. 그래서 내가 사용하는 라이브러리 (RAM/ROM)의 크기는 매우 중요합니다.리눅스에서 라이브러리의 크기를 측정하십시오.
내 소프트웨어에 필요한 RAM/ROM을 어떻게 쉽게 계산할 수 있습니까? (내가 사용한 도서관 포함). 경험 많은 Linux 개발자에게는 너무 쉬운 질문이라고 생각합니다.
실행
size <object>
또는
size <archive>
또는
size <shared-object>
. 텍스트 프로그램 - 여기서
그것은 당신에게
text data bss dec hex filename
표를 줄 것이다 (또는 크로스 컴파일있어 경우에 "target-"크기는 팔-GCC를 사용하는 경우 크기를 팔) 크기, 초기화 된 전역 및 데이터 읽기 전용 데이터를 bss.
이 질문에 대답하는 동안, 최종 링크를 수행 할 때 수동으로 사용 가능한 메모리에 섹션을 배치 할 특정 LdScript (링커로 ld 사용시)를 사용하는 것이 좋습니다.
이 도구는 정적 메모리 만 표시합니다. 런타임 메모리 사용이 더 커집니다. 프로그램에 따라 크게 달라지며 스택과 힙을 사용합니다. –
"ldd"를 사용하여 공유 라이브러리를 확인할 수도 있습니다. "ldd"와 "size"를 사용하면 라이브러리를 포함하여 사용 된 ROM/RAM의 양을 추측 할 수 있습니다. – Wonil
사실 이것은 어려운 질문입니다. 프로그램이 동적 메모리 할당'malloc'을 사용하거나 (특히 재귀가있는 경우) 중요하지 않은 호출 패턴을 가진다면 힙/스택에 필요한 RAM 양을 이론적으로 예측하는 것조차 불가능합니다. 일반적인 임베디드 프로그램의 스택 요구 사항을 결정하는 데 상당히 잘 작동하는 분석기가 있지만 종종 저렴하지는 않습니다. – Gilles