핸들 누출이란 무엇입니까?
핸들 누출은 자원 유형의 유형으로, 메모리와 같은 유한 컴퓨팅 리소스가 응용 프로그램에 의해 과도하게 소비되는 상황입니다. 핸들 누출은 응용 프로그램이 시스템 리소스에 대한 특별한 유형의 "핸들"을 열면 발생하며 더 이상 필요하지 않은 경우 해당 핸들을 닫지 못합니다. 그들은 성능을 줄이고, 응용 프로그램 또는 시스템 충돌을 일으킬 수 있으며, 소프트웨어 프로그램에서 주요 버그 또는 조잡한 코딩의 증상이 될 수 있습니다. 프로그래머는 많은 문제 해결 도구를 사용할 수 있도록합니다.
컴퓨터 프로그래밍에서 핸들은 메모리 블록 또는 디스크의 파일과 같은 시스템 리소스를 참조하는 구조입니다. 핸들은 시스템 리소스와 응용 프로그램 간의 추상화 계층을 제공하며 일반적으로 각 핸들과 리소스와 일치하는 "핸들 테이블"을 통해 컴퓨터 운영 체제에서 관리합니다. 프로그래머는 손잡이를 사용하여 창을 참조한 다음 화면에 그려집니다.운영 체제에 의해.
잘 행동하는 응용 프로그램은 더 이상 필요하지 않은 핸들을 릴리스하여 리소스를 확보하고 운영 체제가 사용하지 않는 리소스를 관리하지 않도록합니다. 소프트웨어 간의 프로그래밍 오류, 소프트웨어 버그 및 비 호환성은 프로그램이 더 이상 필요없는 핸들을 유지하게 할 수 있습니다. 응용 프로그램이 계속 실행됨에 따라 많은 수의 불필요한 핸들이 축적 될 수 있습니다. 이것은 핸들 누출이라고합니다.
핸들 누출은 다른 유형의 자원 누출과 마찬가지로 성능 저하, 시스템 불안정성 또는 극단적 인 경우 컴퓨터 충돌로 이어질 수 있습니다. 핸들은 시스템 메모리와 같은 유한 리소스를 소비하고 응용 프로그램이 핸들을 닫지 않고 과도한 수의 핸들을 생성하면 이러한 리소스가 소진되기 때문입니다. 핸들 누출이 문제를 일으키기 시작하는 정확한 임계 값은 COM에 따라 다릅니다.퍼터의 운영 체제, 사용 가능한 메모리의 양 및 기타 요인. 수십 개의 핸들이 열려있는 유출은 사용자가 눈치 채지 못할 것이며, 1 만 명 이상의 핸들 누출은 응용 프로그램 코드에서 심각한 버그의 징후입니다.
프로그래머는 문제를 일으킬 가능성이 주어지면 누출을 처리하기 위해 특별한주의를 기울여야합니다. 핸들 누출을 진단하는 가장 기본적인 방법은 핸들 카운트를 관찰하는 것입니다. 핸들 수는 응용 프로그램이 실행될 때 현재 프로세스 또는 응용 프로그램이 열려있는 핸들 수입니다. Windows® Task Manager는이 정보를 표시 할 수 있으며 Windows® 및 기타 운영 체제 모두에 대한 타사 유틸리티는 누출 손잡이를 식별하고 추적하는 데 유용 할 수 있습니다.