프로그래밍 측면에서 작은 발자국의 의미는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1618065

  •  06-07-2019
  •  | 
  •  

문제

JXTA 및 PJSIP와 같은 많은 라이브러리가 더 작은 발자국을 가지고 있다고 들었습니다. 이것은 작은 자원 소비 또는 다른 것을 가리키고 있습니까?

도움이 되었습니까?

해결책

발자국은 컴퓨터 RAM 메모리에서 응용 프로그램에 의해 점유 된 크기를 지정합니다.

발자국은 메모리 소비에 대해 말할 때 다른 의미를 가질 수 있습니다. 내 경험에 따르면, 메모리 풋 프린트에는 종종 힙에 할당 된 메모리 (동적 메모리) 또는 디스크 등에서로드 된 리소스가 포함되지 않습니다. 이는 동적 할당이 상수가 아니며 응용 프로그램 또는 모듈 사용 방식에 따라 다를 수 있기 때문입니다. "낮은 발자국"또는 "높은 발자국"을보고 할 때 필요한 공간의 일정한 또는 최고 측정이 일반적으로 필요합니다.

예를 들어 이미지 편집기의 풋 프린트 보고서에 동적 메모리를 포함하는 경우, 발자국은 전적으로 사용자가 응용 프로그램에로드 된 이미지의 크기에 따라 다릅니다.

제 3 자 라이브러리의 맥락에서, 라이브러리 저자는 더 많은 코드를 절대적으로 필요한 것보다 애플리케이션 바이너리에 연결하지 않음을 보장함으로써 라이브러리의 정적 메모리 풋 프린트를 최적화 할 수 있습니다. 예를 들어 C 에서이 작업을 수행하는 데 사용되는 일반적인 방법은 라이브러리 기능을 분리 된 C-Files에 배포하는 것입니다. 대부분의 C 링커는 C-File의 모든 코드를 C-File의 모든 코드를 호출하는 기능뿐만 아니라 응용 프로그램에 연결하기 때문입니다. 따라서 C-File에 단일 함수를 넣으면 모든 링커가 호출 할 때 응용 프로그램에 링커가 작동합니다. C-File에 5 개의 기능을 넣으면 링커가 하나만 사용하더라도 링커가 앱에 연결할 수 있습니다.

이 모든 것이 말하면, 발자국의 일반적인 (학문적) 정의에는 모든 종류의 메모리/스토리지 측면이 포함됩니다.

다른 팁

Wikipedia에서 메모리 발자국 기사:

메모리 풋 프린트는 프로그램이 사용하거나 실행 중에 참조하는 메인 메모리의 양을 나타냅니다.

여기에는 코드 세그먼트 포함 (주로) 프로그램 명령어 (및 때때로 상수), 데이터 세그먼트 (초기화 및 초기화되지 않은), 힙 메모리, 통화 스택 및 다음과 같은 추가 데이터 구조를 보유하는 데 필요한 메모리와 같은 모든 종류의 활성 메모리 영역이 포함됩니다. 기호 테이블, 데이터 구조 디버깅, 열린 파일, 현재 프로세스에 매핑 된 공유 라이브러리 등 프로그램이 실행 중에 필요하며 전체 실행 중에 적어도 한 번에로드 될 것입니다.

일반적으로 그것은 메모리의 양입니다. '발자국'은 실행할 때 메모리에 남습니다. 그러나 요즘에는 문제가되지는 않지만 하드 드라이브에 얼마나 많은 공간을 차지하는지를 참조 할 수 있습니다.

앱을 작성하고 메모리 제한이있는 경우 프로파일 러를 실행하여 프로그램이 얼마나 많이 사용되고 있는지 추적하는 것을 고려하십시오.

그것은 자원을 나타냅니다. 특히 기억. 실행할 때는 더 적은 양의 메모리가 필요합니다.

예, 메모리 또는 디스크와 같은 리소스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top