我遇到的问题是shell_exec
,当通过 Jenkins 启动时,与命令结合起来facter
非常慢。facter
(like )以外的其他命令whoami
很快。
该代码在最近从 14.x 升级到 18.04.1 LTS 的 Ubuntu VM 上运行。在 Ubuntu 14.x 上我没有遇到这个问题。Facter 当前版本为 3.11.3。
我通过使用以下代码将速度问题归结为shell_exec
结合:facter
<?php
/**
*/
require_once 'AbstractTestCase.php';
/**
*/
class FacterTest extends AbstractTestCase
{
/**
*/
public function testSpeedDebug()
{
Core_Util_Debug::performanceStart('whoami');
shell_exec('whoami');
Core_Util_Debug::performanceEnd('whoami');
Core_Util_Debug::performanceStart('facter');
shell_exec('facter hostname');
Core_Util_Debug::performanceEnd('facter');
die (PHP_EOL);
}
}
通过 CLI 手动启动时,输出为:
>> name: whoami | time: 0.005261 s | memory: 3.3359 kB RAM
>> name: facter | time: 0.160292 s | memory: 0 B RAM
在 Jenkins 上启动时,输出为:
>> name: whoami | time: 0.005495 s | memory: 3.3359 kB RAM
>> name: facter | time: 8.652776 s | memory: 0 B RAM
有人知道为什么在 Jenkins 上启动它会很慢(慢约 8 倍)吗?
先感谢您。
额外信息:在 Bamboo 上快速尝试一下,其行为与 Jenkins 上的相同。