컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 메모리 오버플로와 메모리 누수의 차이점

메모리 오버플로와 메모리 누수의 차이점

브랜드 모델: Huawei MateBook D15

시스템: Windows 11

메모리 오버플로는 프로그램에 메모리가 부족하다는 의미입니다. 사용할 수 있는 메모리 공간이 있고 메모리 부족이 나타납니다. 예를 들어 정수를 신청했지만 long에만 저장할 수 있는 숫자를 저장하면 메모리 오버플로가 발생합니다.

메모리 누수는 프로그램이 메모리를 적용한 후 할당된 메모리 공간을 해제할 수 없음을 의미합니다. 메모리 누수로 인한 피해는 무시할 수 있지만 메모리 누수가 누적되면 결과는 심각합니다. 메모리가 많으면 조만간 차지하게 될 것입니다.

메모리 누수는 4가지 범주로 나눌 수 있습니다.

1. 빈번한 메모리 누수. 메모리 누수가 있는 코드는 여러 번 실행되므로 실행될 때마다 메모리 누수가 발생합니다. ?

2. 가끔 메모리 누수가 발생합니다. 메모리 누수를 일으키는 코드는 특정 상황이나 작업에서만 발생합니다. 자주 발생하는 것과 산발적으로 발생하는 것은 상대적입니다. 특정 상황에서는 가끔씩 발생하는 일이 일반화될 수 있습니다. 따라서 테스트 환경과 테스트 방법은 메모리 누수를 감지하는 데 중요합니다. ?

3. 일회성 메모리 누수. 메모리 누수를 일으키는 코드는 한 번만 실행됩니다. 또는 알고리즘 결함으로 인해 항상 단 하나의 메모리 블록만 누수됩니다. 예를 들어, 클래스의 생성자에서 메모리가 할당되었지만 소멸자에서 메모리가 해제되지 않은 경우 메모리 누수는 한 번만 발생합니다. ?

4. 암시적 메모리 누수. 프로그램은 실행되는 동안 지속적으로 메모리를 할당하지만, 종료될 때까지 메모리를 해제하지 않습니다. 엄밀히 말하면 프로그램이 결국 요청된 모든 메모리를 해제하기 때문에 여기에는 메모리 누수가 없습니다. 그러나 며칠, 몇 주, 심지어 몇 달 동안 실행해야 하는 서버 프로그램의 경우 메모리를 제때 해제하지 못하면 결국 시스템 메모리가 모두 고갈될 수도 있습니다. 따라서 이러한 유형의 메모리 누수를 암시적 메모리 누수라고 부릅니다. ?

上篇: 어떤 압축 소프트웨어가 더 좋나요? 下篇: 러시아 더블 스크린 휴대전화는 어떻게 국산인가요?
관련 내용