메모리 누수
컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상
컴퓨터 과학에서 메모리 누수(memory leak) 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상이다. 할당된 메모리를 사용한 다음 반환하지 않는 것이 누적되면 메모리가 낭비된다. 즉, 더 이상 불필요한 메모리가 해제되지 않으면서 메모리 할당을 잘못 관리할 때 발생한다.[1] 일부 서적에서 메모리 손실이라는 용어로 뜻을 옮기기도 하지만[2] leak라는 표현은 단순히 잃는 것 이상의 개념이므로 누수라는 표현이 더 정확하다.
결과
편집이 문단의 내용은 출처가 분명하지 않습니다. (2021년 2월) |
특히 다음의 경우, 메모리 누수에 대하여 더 심각하고 중요하게 고려하여야 한다.
C에서의 단순 예시
편집다음 C 함수는 할당된 메모리의 포인터를 손실함으로써 메모리 누수를 일으킨다.
#include <stdlib.h>
void function_which_allocates(void) {
/* allocate an array of 45 floats */
float *a = malloc(sizeof(float) * 45);
/* additional code making use of 'a' */
/* return to main, having forgotten to free the memory we malloc'd */
}
int main(void) {
function_which_allocates();
/* the pointer 'a' no longer exists, and therefore cannot be freed,
but the memory is still allocated. a leak has occurred. */
}
같이 보기
편집각주
편집- ↑ Crockford, Douglas. “JScript Memory Leaks”. 2012년 12월 7일에 원본 문서에서 보존된 문서. 2012년 11월 6일에 확인함.
- ↑ 네이버 책 :: 네이버는 책을 사랑합니다
외부 링크
편집- (영어) Memory Leak Detection in C++[깨진 링크(과거 내용 찾기)] - Cal Erickson
- (영어) Memory Leak Detection in Embedded Systems - Cal Erickson
이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |