shell_exec
Jenkinsで起動すると、コマンドと組み合わせるとfacter
非常に遅くなるという問題があります。facter
(のような)以外のコマンド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 と同じです。