WinAPI 절전 기능 수수께끼: 예상보다 긴 절전 모드
매개변수 1을 사용하여 WinAPI 절전 기능을 호출하면 사용자에게 스레드 지연이 발생할 수 있음 예정된 기간을 초과했습니다. 실제로 일련의 100회 Sleep(1) 호출을 반복하면 규정된 100ms보다 훨씬 긴 1500ms의 총 수면 시간이 생성되었습니다.
장기 수면의 원인:
이 동작은 Windows 스레드 스케줄러에 내재되어 있습니다. 이는 시간 할당량, 즉 스레드가 실행될 수 있는 정의된 기간에 따라 작동합니다. 0이 아닌 지연은 본질적으로 가장 가까운 완전한 양자로 반올림됩니다.
그럴듯한 시스템 문제:
관찰된 동작은 일반적이지만 배제하는 것이 유리할 수 있습니다. 문제를 악화시킬 수 있는 잠재적인 시스템 문제:
추가 고려 사항:
실행 중인 다른 프로그램이 시스템 전체 타이머 해상도를 조정하여 잠재적으로 양자 크기가 더 작아질 수 있다는 점은 주목할 만합니다. 이는 Sleep(1) 지연이 의도된 1ms 기간 내에 있는 것으로 보고되는 인스턴스를 설명할 수 있습니다. Windows 7의 기본 타이머 해상도는 1ms가 아닌 약 15.6ms여야 합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3