1

我遇到的问题是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 上的相同。

4

0 回答 0