43

コード ベースで HipHop-PHP の互換性とパフォーマンスを評価していますが、組み込みの Web サーバーを有効にして実行すると、パフォーマンスが非常に低下します。

フィボナッチ数列を計算する次のサンプル テスト プログラムがあります。

ex3.php:

function fib($n)
{
    if ($n <= 2)
        return 1;
    else
        return fib($n-1) + fib($n-2);
}

$n = 36;
printf("fib(%d) = %d\n", $n, fib($n, 2));

コマンドラインを使用して HHVM でこれを実行すると、印象的な結果が得られます。

time hhvm -v"Eval.Jit=true" -f ./ex3.php
fib(36) = 14930352

real    0m0.267s
user    0m0.248s
sys     0m0.020s

これを標準の PHP と比較します。

root@hiphop:/www# time php -f ./ex3.php
fib(36) = 14930352

real    0m5.606s
user    0m5.600s
sys     0m0.000s    

ただし、HHVM で組み込みの Web サーバーを有効にすると、すべてのパフォーマンスの向上が失われます。

hhvm -v"Eval.Jit=true" -m server -p 8000 &
time wget -qSO - http://localhost:8000/ex3.php
  HTTP/1.1 200 OK
  Content-Type: text/html; charset=utf-8
  X-Powered-By: HPHP
  Date: Sat, 27 Jul 2013 14:16:09 GMT
  Content-Length: 19
fib(36) = 14930352

real    0m5.279s
user    0m0.000s
sys     0m0.000s

ご覧のとおり、HHVM から応答が返ってきていますが、この要求を処理するのに 5 秒以上かかります。私は何が欠けていますか?

4

3 に答える 3

2

HHVM > v3.4 の場合 Eval.JitWarmupRequests=0 を Eva​​l.JitProfileInterpRequests=0 に変更

`#!/usr/bin/hhvm -v Eval.Jit=1 -v Eval.JitProfileInterpRequests=0 ./do.php`
于 2015-04-26T02:47:19.443 に答える