LuaSandbox LuaSandbox::setCPULimit
(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — Lua 환경에 대한 CPU 시간 제한 설정
설명
public LuaSandbox::setCPULimit(float|bool $limit
): void
Lua 환경에 대한 CPU 시간 제한을 설정합니다.
이 메서드를 호출한 후 환경에서 사용한 총 사용자 및 시스템 시간이 이 제한을 초과하면 LuaSandboxTimeoutError 예외가 발생합니다.
PHP 콜백에 사용된 시간이 제한에 포함됩니다.
Lua가 실행되는 동안 콜백에서 시간 제한을 설정하면 타이머가 재설정되거나 아직 실행되지 않은 경우 시작됩니다.
메모: Windows에서는 CPU 제한이 무시됩니다. FreeBSD 및 Mac OS X와 같이 CLOCK_THREAD_CPUTIME_ID
를 지원하지 않는 운영 체제에서는 CPU 시간이 아닌 벽시계 시간이 제한됩니다.
매개변수
limit
- 초 단위의 float로 제한하거나 제한이 없는 경우
false
입니다.
반환 값
값이 반환되지 않습니다.
Examples
예제 #1 루아 함수 호출
<?php
// create a new LuaSandbox
$sandbox = new LuaSandbox();
// set a time limit
$sandbox->setCPULimit( 2 );
// Run Lua code
$sandbox->loadString( 'while true do end' )->call();
?>
위의 예는 다음과 유사한 결과를 출력합니다.
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded
기타
- LuaSandbox::getCPUUsage() - Lua 환경의 현재 CPU 시간 사용량을 가져옵니다.
- LuaSandbox::setMemoryLimit() - Lua 환경에 대한 메모리 제한 설정