(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — 设置 Lua 环境的 CPU 时间限制
设置 Lua 环境的 CPU 时间限制。
如果在调用此方法后环境使用的总用户和系统时间超过此限制,则会抛出 LuaSandboxTimeoutError 异常。
在 PHP 回调中使用的时间包含在限制内。
在 Lua 运行时从回调设置时间限制会导致计时器重置,或者如果计时器尚未运行则启动。
注意:
在 Windows 上,CPU 限制将被忽略。在不支持
CLOCK_THREAD_CPUTIME_ID
的操作系统(例如 FreeBSD 和 Mac OS X)上,将限制挂钟时间而不是 CPU 时间。
不返回值。
示例 #1 调用 Lua 函数
<?php
// 创建一个新的 LuaSandbox
$sandbox = new LuaSandbox();
// 设置时间限制
$sandbox->setCPULimit( 2 );
// 运行 Lua 代码
$sandbox->loadString( 'while true do end' )->call();
?>
以上示例将输出类似以下内容
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded