proc_nice() - 修改当前进程的优先级 - php 执行命令函数
proc_nice()
(PHP 5, PHP 7)
修改当前进程的优先级
说明
proc_nice(int $increment): boolproc_nice()修改当前进程的优先级,修改量由$increment参数指定。$increment为正数会降低当前进程优先级,反之,为负数会提高优先级。
proc_nice()和proc_open()函数以及和proc_open()相关的函数并无什么关系。
参数
$increment新的优先级值,具体的设定取决于所运行的平台。
在 Unix 系统上,较小的值表示较高的优先级,例如:-20,而正数值表示更低的优先级。
在 Windows 平台上,$increment参数的含义如下:
优先级 | 可能的值 |
---|---|
高优先级 | $increment5 |
低优先级 | $increment> 9 |
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。。如果发生错误,例如用户无权修改当前进程的优先级,会生成E_WARNING
级别的错误。
范例
使用proc_open()函数将进程设置为高优先级
更新日志
版本 | 说明 |
---|---|
7.2.0 | 在 Windows 平台上可用。 |
注释
Note:可用性仅在具有'nice'能力的系统上才可以使用proc_nice()函数。下列系统含有'nice':SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3。Note:Windows 平台
proc_nice()函数会改变当前进程优先级,即使 PHP 是使用线程安全模式编译的。
On a Linux system, running apache2 as a non-privileged user you can not increase the niceness of the process after decreasing it. Also, you can not use the apache_child_ terminate either. I found the following does work though:
If a process is reniced, then all its children inherit that niceness. So a PHP script can call proc_nice on itself, then invoke system(), and the command executed via system() will also be niced. Also worth making a note of ionice. There's no PHP function for this, but it's important. A nice'd program will happily try to chew up all i/o bandwidth with very little CPU usage, it can therefore make the entire computer non-responsive despite the programmer's intention. Use "ionice -c3" or see "man ionice"
Regarding ionice - on linux the impact of the ionice -c3 class is similar to that of nice, because the CPU "niceness" is taken into account when calculating the io niceness.
Simple function for check process nice, by default returns nice of current process:
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)