programing

실행 시간 제한에 절전 시간이 포함됩니까?

stoneblock 2023. 7. 23. 13:57

실행 시간 제한에 절전 시간이 포함됩니까?

저는 그것과 관련하여 두 가지 질문이 있습니다.sleep()PHP에서 기능:

  1. 절전 시간이 PHP 스크립트의 최대 실행 시간 제한에 영향을 미칩니까?때때로 PHP는 "최대 실행 시간 30초 초과" 메시지를 표시합니다.사용할 경우 이 메시지가 표시됩니까?sleep(31)?

  2. 사용 시 위험 요소가 있습니까?sleep()기능?CPU 성능에 많은 비용이 드나요?

당신은 그것을 시도해야 합니다, 단지 당신의 최대 실행 시간보다 더 오래 자는 스크립트를 가지고 있습니다.

<?php
  sleep(ini_get('max_execution_time') + 10);
?>

스포일러:Linux에서는 절전 시간이 무시되지만 Windows에서는 실행 시간으로 계산됩니다.

PHP sleep() 페이지에는 다음과 같은 사용자 기여 노트가 있습니다.

참고: set_time_limit() 함수와 구성 지시어 max_execution_time은 스크립트의 실행 시간에만 영향을 줍니다.시스템(), sleep() 함수, 데이터베이스 쿼리 등을 사용하여 스크립트 실행 외부에서 발생하는 작업에 소요되는 시간은 스크립트가 실행된 최대 시간을 결정할 때 포함되지 않습니다.

sleep()과 같은 시스템 호출이 아닌 스크립트 시간에만 영향을 미칩니다.Windows sleep()이 포함된 버그가 있는 것 같습니다.최대 실행 시간은 CPU 시간 등이 아니라 실시간에 관한 것입니다.그러나 변경할 수 있습니다.

  • 당신의 php.ini에서 max_http_time 디렉티브.이 설정은 글로벌 설정입니다.
  • 위 지침과 함께 ini_set()을 사용합니다.이렇게 하면 해당 실행에 대해 현재 실행 중인 스크립트에 대해서만 변경됩니다.
  • set_time_limit(): 로컬 변경 사항도 있습니다.

마지막 두 개의 차이에 대해서는 max_execution_time이 고정 수량이라고 생각합니다.실행 중:

ini_set('max_execution_time', 60);

스크립트는 60초로 제한됩니다.20초 후에 전화를 걸 경우:

set_time_limit(60);

스크립트는 이제 20 + 60 = 80초로 제한됩니다.

다른 사람들은 이미 sleep()과 PHP 스크립트 실행 시간 제한의 기본 사항을 다루었지만, 당신은 정말 긴 sleep 시간을 사용할 때 또 다른 위험을 인식해야 합니다.

일반적으로 브라우저가 서버에 요청을 발송하고 서버로부터 데이터를 수신하지 않으면 연결 시간이 초과될 수 있습니다.이 제한 시간은 브라우저의 구성에 따라 다르지만 IE7의 기본값은 30초인 반면 Firefox의 기본값은 115초입니다. Network.http.keep-alive.timeout의 경우:config 및 필터링으로 이동하여 Firefox에서 사용자 자신의 구성을 확인할 수 있습니다(제한 시간은 초 단위로 지정됨).

편집: network.http.keep-alive.timeout 및 browser.urlbar에 대한 단위를 가지고 있었습니다.검색.파일이 뒤섞여 있습니다.실제로는 10분의 1초가 아니라 몇 초 안에 있습니다.

예, 제한 시간까지 카운트됩니다(따라서 절전(31)이 오류를 트리거합니다).

CPU 성능 비용이 드는 것과는 반대로 다른 애플리케이션에서 CPU를 사용할 수 있습니다(애플리케이션이 절전 모드로 전환되면 해당 애플리케이션의 CPU 사용량은 거의 0%가 됩니다).사용자로부터 시간을 빼앗는 것 외에, 저는 이것을 사용하는 것에 대한 어떠한 위험도 생각할 수 없습니다.

언급URL : https://stackoverflow.com/questions/740954/does-sleep-time-count-for-execution-time-limit