[CSAPP 9장 완전 정복] 9.9(Part 11) 메모리 활용률(Peak Utilization) 측정과 평가 지표

2025. 4. 26. 15:00·크래프톤 정글/컴퓨터구조(CSAPP)

메모리 활용률(Peak Utilization) 측정과 평가 지표

이번 포스트에서는 동적 메모리 할당기의 품질을 평가하는 핵심 기준 중 하나인 메모리 활용률(Memory Utilization)과, 이를 어떻게 측정하고 해석하는지 살펴보겠습니다. 성능 측정은 단순히 할당기를 구현하는 것을 넘어 그 수준을 가늠할 수 있는 중요한 지표로 쓰입니다.

 

 

메모리 활용률(Memory Utilization)

메모리 활용률은 전체 heap 크기 중 실제로 사용자가 요청한 payload가 차지하는 비율을 말하는데요. 쉽게 말해, 얼마나 낭비 없이 메모리를 잘 썼는지를 나타냅니다.

 

이를 수식으로 표현하면 다음과 같습니다.

Memory Utilization = (사용 중인 payload 총합) / (Heap 총 크기)

 

 

Peak Utilization

Peak Utilization은 전체 실행 동안 가장 많은 payload를 사용했던 순간의 활용률을 의미합니다.

  • Pi: 시점 i에서 할당된 payload의 총합
  • Hk: 최종 Heap 크기

공식은 다음과 같습니다.

Peak Utilization = max(Pi) / Hk

→ 즉, 실행 중 가장 많은 메모리를 쓰던 순간을 기준으로 최종 힙 크기에 대한 비율을 계산합니다.

 

 

Peak Utilization을 사용하는 이유

  • 실제 프로그램은 메모리 사용량이 시간에 따라 변동한다
  • 따라서 단순 평균보다는 가장 많은 메모리를 필요로 했던 순간이 더 중요하다
  • Peak Utilization은 할당기가 최악의 순간을 얼마나 잘 처리했는지를 보여준다

 

메모리 활용률 향상을 위한 전략

  • 정렬 오버헤드 최소화
  • 필요 이상으로 큰 블록 할당하지 않기
    • Best-fit 사용 고려 등
  • Splitting/Coalescing 적극 수행
  • Segregated Free List 활용

 

성능 평가 지표 정리

지표 의미 목표
Throughput 초당 처리 가능한 malloc/free 요청 수 높을수록 좋음
Peak Utilization 최대 payload / Heap 크기 높을수록 좋음
Internal Fragmentation 블록 내부의 낭비된 공간 낮을수록 좋음
External Fragmentation 연속된 큰 공간이 없는 현상 낮을수록 좋음

 

 

마치면서

이번 편에서는 메모리 활용률, 특히 Peak Utilization이라는 지표를 중심으로 할당기 성능을 어떻게 평가할 수 있는지 살펴보았는데요. 좋은 할당기는 단순히 동작하는 것을 넘어, 메모리를 최대한 효율적으로 사용하는 것을 목표로 합니다.

 

다음 편에서는 지금까지 배운 내용을 종합해, 간단한 동적 메모리 할당기 설계 방향을 제시하면서 길었던 9.9절 파트를 마쳐볼 예정입니다. 감사합니다.

저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > 컴퓨터구조(CSAPP)' 카테고리의 다른 글

[CSAPP 9장 완전 정복] 9.10 가비지 컬렉션(Garbage Collection) 이해하기  (0) 2025.04.26
[CSAPP 9장 완전 정복] 9.9(Part 12) 최종 정리: 간단한 동적 메모리 할당기 설계 방향  (0) 2025.04.26
[CSAPP 9장 완전 정복] 9.9(Part 10) 할당기 설계 시 고려해야 할 제약과 목표  (0) 2025.04.26
[CSAPP 9장 완전 정복] 9.9(Part 9) 블록 병합(Coalescing) 로직과 실제 구현  (0) 2025.04.26
[CSAPP 9장 완전 정복] 9.9(Part 8) 블록 분할(Splitting) 로직과 최소 블록 크기 관리  (0) 2025.04.26
'크래프톤 정글/컴퓨터구조(CSAPP)' 카테고리의 다른 글
  • [CSAPP 9장 완전 정복] 9.10 가비지 컬렉션(Garbage Collection) 이해하기
  • [CSAPP 9장 완전 정복] 9.9(Part 12) 최종 정리: 간단한 동적 메모리 할당기 설계 방향
  • [CSAPP 9장 완전 정복] 9.9(Part 10) 할당기 설계 시 고려해야 할 제약과 목표
  • [CSAPP 9장 완전 정복] 9.9(Part 9) 블록 병합(Coalescing) 로직과 실제 구현
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어)
        • Equipped in 정글(나만무) N
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CSAPP 9장 완전 정복] 9.9(Part 11) 메모리 활용률(Peak Utilization) 측정과 평가 지표
상단으로

티스토리툴바