>  기사  >  시스템 튜토리얼  >  win11 메모리 누수 해결 방법 win11 메모리 누수의 원인 분석 및 다양한 해결 방법.

win11 메모리 누수 해결 방법 win11 메모리 누수의 원인 분석 및 다양한 해결 방법.

PHPz
PHPz앞으로
2024-02-29 09:58:50756검색

PHP 편집자 Xiaoxin이 win11의 메모리 누수 문제를 분석해 드립니다. 메모리 누수는 프로그램 버그, 공개되지 않은 리소스 등 다양한 이유로 발생할 수 있습니다. 솔루션에는 시스템 패치 업데이트, 메모리 누수를 일으킬 수 있는 프로그램 닫기, 메모리 관리 도구 사용 등이 포함됩니다. 원인을 분석하고 효과적인 조치를 취하면 win11 메모리 누수 문제를 효과적으로 해결하고 시스템 성능과 안정성을 향상시킬 수 있습니다.

메모리 누수의 원인:

메모리 누수는 잘못된 메모리 할당으로 인해 컴퓨터 프로그램의 리소스가 잘못 정렬되어 발생합니다. 이는 사용되지 않은 RAM 위치가 여전히 해제되지 않은 경우 발생합니다. 메모리 누수를 공간 누수 또는 높은 메모리 사용량(프로그램이 필요한 것보다 더 많은 RAM을 사용하는 경우)과 혼동하지 마십시오. Windows 11/10/8/7 시스템에서 메모리 누수는 메모리가 사용되지 않았지만 액세스할 수 없을 때 발생하는 것으로 알려져 있습니다.

메모리 누수가 나쁜 이유:

메모리 누수는 버그, 운영 체제 또는 소프트웨어의 결함이기 때문에 나쁜 것입니다. 하지만 이것이 시스템에 정확히 어떤 영향을 미치는지 살펴보겠습니다.

  • 메모리를 사용하지 않아도 메모리가 해제되지 않아 메모리 소모를 유발합니다.
  • 메모리가 소진되면 소프트웨어 노화가 발생합니다.
  • 사용 가능한 메모리가 줄어들면 응답 시간이 늘어나고 시스템 성능이 저하됩니다.
  • 확인되지 않은 메모리 누수로 인해 결국 애플리케이션이 중단될 수 있습니다.

메모리 누수를 식별하려면 프로그래머는 프로그램의 소스 코드에 액세스해야 합니다.

메모리 누수를 찾는 방법

문제를 해결하려면 먼저 문제를 식별해야 합니다. 메모리 누수를 찾는 기본 단계는 다음과 같습니다.

  • 확인: 누수가 발생했는지 확인합니다.
  • 커널 모드 메모리 누수 찾기: 커널 모드 드라이버 구성 요소로 인해 발생한 누수를 찾습니다.
  • 사용자 모드 메모리 누수 찾기: 사용자 모드 드라이버 또는 애플리케이션으로 인해 발생한 누수를 찾습니다.

메모리 할당이 발생하는 방식

애플리케이션이 RAM을 할당하는 데는 다양한 모드가 있습니다. 사용 후 공간이 해제되지 않으면 할당 모드에 관계없이 메모리 누수가 발생할 수 있습니다. 몇 가지 일반적인 할당 패턴은 다음과 같습니다.

  • HealAlloc 함수는 힙 메모리 할당에 사용됩니다. C/C++ 런타임에 해당하는 항목은 malloc 및 new입니다.
  • 운영 체제에서 직접 할당을 위한 VirtualAlloc 기능.
  • 애플리케이션 커널 메모리를 저장하기 위한 Kernel32 API입니다. 예를 들어 CreateFile, CreateThread입니다.
  • User32 API 및 Gdi32 API.

Windows에서 메모리 누수를 방지하는 방법

우리 모두는 예방이 치료보다 낫다는 것을 알고 있으므로 시스템을 모니터링하는 것이 매우 중요합니다.

다양한 프로그램이나 애플리케이션이 RAM을 비정상적으로 사용하는지 주의가 필요합니다. CTRL+SHIFT+ESC를 눌러 Windows 작업 관리자로 이동하여 핸들, 사용자 개체, GDI 개체 등에 대한 열을 추가할 수 있습니다.

이를 통해 리소스 사용량을 쉽게 모니터링할 수 있습니다.

메모리 누수 진단을 위한 Microsoft 도구

다양한 도구는 다양한 할당 패턴으로 메모리 누수를 진단합니다.

  • Application Verifier는 힙 누수를 진단합니다.
  • UMDH(Windows용 디버깅 도구의 구성 요소)는 힙 메모리 할당을 모니터링하여 개별 프로세스의 누수를 분석합니다.
  • RAM 사용량에 대한 포괄적인 분석을 위한 추적 캡처입니다.
  • Xperf는 힙 할당 패턴도 추적합니다.
  • CRT 디버그 힙은 힙 할당을 추적할 뿐만 아니라 코딩 방법을 통해 누수를 최소화합니다.
  • JavaScript Memory Leak Detector는 코드의 메모리 누수를 디버그합니다.

사용 팁

  • Win32 리소스 및 힙 할당을 위해 커널 HANDLE 및 기타 스마트 포인터를 사용하세요.
  • ATL 라이브러리에서 커널 할당을 위한 자동 리소스 관리 클래스를 가져옵니다. C++ 표준에는 힙 할당을 위한 auto_ptr이 있습니다.
  • _com_ptr_t, _bstr_t 또는 _variant_t를 사용하여 "스마트 포인터"에 COM 인터페이스 포인터를 캡슐화합니다.
  • 비정상적인 메모리 사용량이 있는지 .NET 코드를 모니터링하세요.
  • 함수 종료 시 대부분의 블록에 있는 변수에서 할당이 해제되도록 함수에서 여러 종료 경로를 사용하지 마세요.
  • _finally 블록의 모든 할당을 해제한 후에만 기본 예외를 사용하세요. C++ 예외와 함께 사용할 수 있도록 모든 힙과 핸들 할당을 스마트 포인터로 래핑합니다.
  • PROPVARIANT 개체를 다시 초기화하거나 삭제하기 전에 항상 PropVariantClear 함수를 호출하세요.

Windows 11/10에서 메모리 누수를 해결하는 방법

메모리 누수를 방지하는 다양한 방법과 마찬가지로 메모리 누수를 중지하는 방법도 다양합니다. 하지만 시작하기 전에 먼저 시스템 복원 지점을 생성하는 것을 잊지 마세요.

1] 프로세스를 닫고 다시 시작하세요

불필요한 프로세스가 RAM을 너무 많이 차지하는 경우 작업 관리자에서 프로세스를 종료할 수 있습니다. 여유 공간을 다른 프로세스에서 사용할 수 있도록 장치를 재부팅해야 합니다. 다시 시작하지 않으면 메모리 누수 문제가 해결되지 않습니다. Runtime Broker는 PC 속도를 저하시키는 것으로 알려진 프로세스입니다. 비활성화하는 것만으로도 효과가 있는지 확인하십시오.

2] 메모리 진단 도구

Windows용 내장 메모리 진단 도구에 액세스하려면:

  • 중요한 작업을 모두 저장하세요.
  • Win + R을 눌러 실행 창을 엽니다.
  • 실행 창에 mdsched.exe 명령을 입력하세요.
  • 컴퓨터를 다시 시작하세요.
  • 다시 시작한 후 기본 스캔을 수행하거나 "테스트 조합" 또는 "통과 횟수"와 같은 "고급" 옵션을 선택하세요.
  • F10을 눌러 테스트를 시작하세요.

이 문제는 아직 임시 수정 사항입니다.

3] 드라이버 업데이트 확인

오래된 드라이버는 메모리 누수를 일으킬 수 있습니다. 모든 드라이버를 최신 상태로 유지하십시오. 장치 드라이버를 업데이트하려면 다음 방법 중 하나를 따르십시오.

  • Windows 선택적 업데이트를 통해 드라이버 업데이트를 확인하여 드라이버를 업데이트할 수 있습니다.
  • 제조업체 웹 사이트를 방문하여 드라이버를 다운로드할 수 있습니다.
  • 무료 드라이버 업데이트 소프트웨어를 사용하세요
  • 컴퓨터에 이미 INF 드라이버 파일이 있는 경우:
    • 장치 관리자를 엽니다.
    • 드라이버 카테고리를 클릭하면 메뉴가 확장됩니다.
    • 그런 다음 관련 드라이버를 선택하고 마우스 오른쪽 버튼을 클릭하세요.
    • 드라이버 업데이트를 선택하세요.
    • 화면 마법사에 따라 오디오 드라이버 업데이트를 완료하세요.

운영 체제와 설치된 프로그램, Microsoft Store 앱을 업데이트하는 것도 도움이 될 수 있습니다.

4] 성능 최적화

Windows 성능을 조정하면 프로세서 예약 및 메모리 사용을 포함한 모든 것을 관리하여 메모리 누수를 막을 수 있습니다. 다음 단계를 따르세요.

  • "이 PC"를 마우스 오른쪽 버튼으로 클릭하고 왼쪽 창에서 "고급" 설정을 선택합니다.
  • 고급 탭에서 성능, 설정으로 이동하세요.
  • "최상의 성능을 위해 조정"을 선택하고 "확인"을 클릭하세요.
  • 다시 시작하고 문제가 해결되었는지 확인하세요.

이 간단한 해결 방법이 효과가 없다면 다음 방법을 시도해 보세요.

5] 시작 시 실행되는 프로그램 비활성화

문제가 있는 프로그램을 비활성화하는 것이 메모리 누수 문제를 제거하는 유일한 방법입니다. 작업 관리자로 이동하여 문제가 있는 프로그램을 비활성화하세요. 어떤 프로그램이 문제를 일으키는지 모르는 경우 다음을 수행하세요.

  • 작업 관리자로 이동하세요.
  • 스타트업으로 이동하세요.
  • 기본적으로 실행할 필요가 없는 시작 프로그램을 비활성화합니다.

6] 하드 드라이브 조각 모음

Windows 11/10에서는 이 작업을 자동으로 수행하지만 성능을 최적화하기 위해 가끔 하드 드라이브 조각 모음을 수행해야 할 수도 있습니다.

  • 이 PC 또는 "내 컴퓨터"로 이동하세요.
  • 시스템 하드 드라이브(일반적으로 C: 드라이브)를 마우스 오른쪽 버튼으로 클릭하세요.
  • "속성" 아래의 "도구"로 이동하여 "최적화"를 선택하세요.
  • 조각 모음하려는 드라이브를 선택하고 "분석"을 선택하세요.

새 조각화 후 컴퓨터를 다시 시작하세요.

7] 종료 시 페이지 파일 지우기

요즘 점점 복잡해지고 있지만 걱정하지 마세요. 시스템을 종료할 때마다 페이지 파일을 지우는 방법은 다음과 같습니다.

  • 검색창에 regedit를 입력하여 레지스트리 편집기를 시작하세요.
  • 다음 경로를 입력하세요:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager内存管理
  • ClearPageFileAtShutDown 값을 "1"로 변경하세요.
  • 변경 사항을 저장하고 기기를 다시 시작하세요.

해야합니다. 종료 프로세스에는 더 많은 시간이 소요됩니다.

9]Super Fetch 비활성화

이 Windows 서비스는 시작 시간을 최소화하여 성능을 최적화합니다. 이를 통해 Windows는 RAM 사용량을 관리할 수 있습니다. Superfetch를 비활성화한 채로 생활하는 것은 불편하지만 꼭 필요한 경우에는 그렇게 하십시오. 문제를 파악하려면 최소한 이것만 시도해 보세요.

  • services.msc를 검색하고 서비스 관리자로 이동하세요.
  • "Superfetch"를 찾아 마우스 오른쪽 버튼을 클릭하여 "속성"으로 이동하세요.
  • "중지"를 선택하세요.
  • 드롭다운 메뉴에서 서비스를 "비활성화"할 수도 있습니다.
  • PC를 다시 시작하고 성능이 향상되는지 확인하세요.

이 방법이 작동하지 않으면 Superfetch를 활성화하세요.

10] 악성 코드 확인

Windows와 함께 제공되는 타사 바이러스 백신 소프트웨어 또는 Microsoft Defender를 사용하여 악성 코드를 검사하고 제거하세요. 운영 체제를 지원하도록 바이러스 백신 소프트웨어를 업데이트하여 메모리 누수의 원인이 되지 않도록 하세요.

11] 설정 수정

1. 왼쪽 하단 작업 표시줄에서 "시작"을 클릭하고 위 검색창에 "제어판"을 입력하여 엽니다.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

2. 새 인터페이스에 들어간 후 오른쪽 상단의 "보기 기준"을 "큰 아이콘"으로 전환한 다음 "전원 옵션"을 클릭하세요.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

3. 그런 다음 왼쪽 열에서 "전원 버튼의 기능 선택"을 클릭하세요.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

4. 그런 다음 위에서 '현재 사용할 수 없는 설정 변경'을 클릭하세요.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

5. 마지막으로 "빠른 시작 활성화"를 찾아 작은 상자를 선택 취소한 후 변경 사항 저장을 클릭하세요.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

12] 설정 수정

1. 그래픽 카드 드라이버로 인한 메모리 누수일 수도 있습니다.

2. 인텔 공식 웹사이트에서 이전 버전의 드라이버를 선택하여 다운로드하여 설치할 수 있습니다.

위 내용은 win11 메모리 누수 해결 방법 win11 메모리 누수의 원인 분석 및 다양한 해결 방법.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제