핸들 누출이란 무엇입니까?

핸들 누수는 일종의 리소스 누수로, 메모리와 같은 유한 컴퓨팅 리소스가 응용 프로그램에서 과도하게 소비되는 상황입니다. 응용 프로그램이 시스템 리소스에 대한 특수한 유형의 "핸들"을 열면 더 이상 필요하지 않은 핸들을 닫지 않으면 핸들 누수가 발생합니다. 성능 저하, 응용 프로그램 또는 시스템 충돌의 원인이 될 수 있으며 소프트웨어 프로그램에서 심각한 버그 나 조잡한 코딩의 증상 일 수 있습니다. 프로그래머는 핸들 누수 방지를 위해 많은 문제 해결 도구를 사용할 수 있습니다.

컴퓨터 프로그래밍에서 핸들은 메모리 블록이나 디스크의 파일과 같은 시스템 리소스를 참조하는 구조입니다. 핸들은 시스템 리소스와 응용 프로그램간에 추상화 계층을 제공하며 일반적으로 각 핸들과 리소스를 일치시키는 "핸들 테이블"을 통해 컴퓨터 운영 체제에서 관리합니다. 프로그래머는 핸들을 사용하여 운영 체제에 의해 화면에 그려진 창을 참조 할 수 있습니다.

올바르게 작동하는 응용 프로그램은 더 이상 필요없는 핸들을 해제하여 리소스를 확보하고 운영 체제가 사용하지 않는 리소스를 관리하지 않도록합니다. 프로그래밍 오류, 소프트웨어 버그 및 소프트웨어 간의 비 호환성으로 인해 프로그램이 더 이상 필요없는 핸들을 잡을 수 있습니다. 응용 프로그램이 계속 실행되면서 불필요한 많은 핸들이 누적 될 수 있습니다. 이것을 핸들 누수라고합니다.

다른 유형의 리소스 누수와 마찬가지로, 누수 처리는 성능 저하, 시스템 불안정 또는 극단적 인 경우 컴퓨터 충돌로 이어질 수 있습니다. 핸들은 시스템 메모리와 같은 유한 리소스를 사용하기 때문에 응용 프로그램이 핸들을 닫지 않고 과도한 수의 핸들을 생성하면 이러한 리소스가 소진됩니다. 핸들 누수가 문제를 일으키는 정확한 임계 값은 컴퓨터 운영 체제, 사용 가능한 메모리 양 및 기타 요인에 따라 다릅니다. 수십 개의 핸들이 열려있는 누수는 아마도 사용자가 알아 차리지 못할 것입니다. 반면 10,000 이상의 핸들 누수는 응용 프로그램 코드에서 심각한 버그의 징후입니다.

프로그래머는 문제를 일으킬 가능성이있는 누출을 처리하기 위해 특별한주의를 기울여야합니다. 핸들 누수를 진단하는 가장 기본적인 방법은 응용 프로그램이 실행될 때 프로세스 또는 응용 프로그램이 현재 열려있는 핸들 수인 핸들 수를 관찰하는 것입니다. Windows® 작업 관리자는이 정보를 표시 할 수 있으며 Windows® 및 기타 운영 체제에 대한 타사 유틸리티도 누출 핸들을 식별하고 추적하는 데 유용 할 수 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?