Windows 我可以通过ini文件中的设置或直接从脚本中设置php脚本在CLI模式下的运行优先级吗?

Windows 我可以通过ini文件中的设置或直接从脚本中设置php脚本在CLI模式下的运行优先级吗?,windows,php,Windows,Php,我指的是可以从任务管理器更改的设置,如“实时”或“空闲”。 我的脚本占用了大量资源,并且破坏了同时运行的GUI程序 我想从脚本中将其优先级设置为空闲。我不需要100%的速度。在Windows命令行上,您有几个选项: start /b /low program.exe start /b /high program.exe start /b /realtime program.exe start /b /normal program.exe start /b /abovenormal program

我指的是可以从任务管理器更改的设置,如“实时”或“空闲”。 我的脚本占用了大量资源,并且破坏了同时运行的GUI程序


我想从脚本中将其优先级设置为空闲。我不需要100%的速度。

在Windows命令行上,您有几个选项:

start /b /low program.exe
start /b /high program.exe
start /b /realtime program.exe
start /b /normal program.exe
start /b /abovenormal program.exe
start /b /belownormal program.exe

在PHP中,本机有pcntl_setpriority()函数。但是,这只是Unix

窗户;此命令行程序允许您更改已运行进程的优先级:


您可以在PHP脚本中执行exec()来调用此程序。

@stillstanding提供的答案完全有效。我只是想从我自己的实验中添加一些细节

如果您的脚本使用了50%的CPU,那么添加
/low
不会使其消耗更少。唯一的区别是当另一个具有更高调度优先级的进程出现并需要CPU时。当CPU使用率达到99-100%时,PHP CLI脚本将被限制

换句话说,您需要为需要它的进程安排更高的优先级,以便机器仍然能够响应

start
添加到直接使用
exec()
运行的命令中,在使用路径和参数时可能会出现问题。此外,我还有一个问题,即启动的进程的CPU使用率为0%

以下是一个工作示例:

$cmd = 'start /b /low /d "C:\php\" php.exe -f ""C:\Data\www\script.php" foo="1" bar="text"';
pclose(popen($command, "r"));

我制作了一个单独的runphp.bat文件,当用鼠标点击时,所有的*.php文件都会在这个文件中运行,所以如果一个脚本对CPU或内存来说太重,也就不足为奇了。此文件的内容很简单:start/b/belownormal php.exe%1@echo off pause>nul