Recursive 알고리즘은 복잡한 문제를 해결하기 위해 임베디드 시스템에서 일반적으로 사용됩니다. 메모리 사용량을 이해하고 시스템 안정성을 보장하는 데 필수적입니다. 이 문서는 임베디드 환경에서 반복 기능에서 메모리 소비를 계산하는 방법을 설명합니다.

Recursive 기능 기억 성분을 이해하십시오

Recursive 알고리즘의 메모리 사용은 주로 두 가지 구성 요소가 포함되어 있습니다. 메모리 및 데이터 메모리. 로컬 변수 및 반환 주소를 포함한 각 활성 함수 통화에 대한 스택 상점 정보. 데이터 메모리는 프로그램에 의해 사용되는 정적 및 글로벌 변수를 보유합니다.

쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 쌓아온 꼴 기억

반복 기능에 의해 사용되는 총 더미 기억은 각 기능의 최대 깊이에 달려 있습니다 궤란의 크기에 각 기능의 궤란 구조. 공식은:

최대 스택 사용량 = 각 스택 프레임의 최대 반복 깊이 × 크기]

각 스택 프레임의 크기를 결정하려면 로컬 변수, 저장된 레지스터 및 반환 주소 고려하십시오. 임베디드 시스템은 종종 제한된 스택 공간이있어이 정확하게 중요한 것이기 때문입니다.

Data Memory 사용

데이터 메모리 소비는 재발효 과정에서 사용되는 정적 및 글로벌 변수에 따라 다릅니다. 이 변수는 프로그램 기간 동안 할당된 한 번 및 지속됩니다. 사용 된 전체 데이터 메모리는 이러한 모든 변수의 합입니다.

실제 계산 예제

재cursive 함수는 최대 깊이 10개의 통화를 가지고 있으며, 각 통화의 스택 프레임은 64 바이트입니다. 사용된 총 스택 메모리는 다음과 같습니다.

10 × 64 바이트 = 640 바이트

함수가 글로벌 변수의 200 바이트를 사용한다면, 총 메모리 사용은 스택과 데이터 메모리를 결합하여, 포괄적인 리소스 소비를 제공합니다.