y_uti のブログ

統計、機械学習、自然言語処理などに興味を持つエンジニアの技術ブログです

PHP new generation のベンチマーク実行時間の計測

PHP new generation というのがアナウンスされていたので、試してみました。
php.internals: phpng:_Refactored_PHP_Engine_with_Big_Performance_I mprovement

ビルド、実行手順等は以下のウェブページに記載されています。
https://wiki.php.net/phpng

HHVM とも比較してみたかったので、HHVM の環境を構築済みの Ubuntu Server 13.10 にインストールしました。インストール手順は、ウェブページの記載のとおりで特に問題になることはありませんでした。私の環境では、以下のパッケージをインストールする必要がありましたが、いずれも apt-get で問題なく導入できました。

  • make
  • automake
  • gcc
  • g++*1
  • bison
  • re2c
  • libxml2-dev
  • zlib1g-dev
  • libmcrypt-dev
  • libmysqld-dev

ビルドできたところで、ウェブページに記載されている Zend/bench.php を試してみました。計測対象とした処理系は以下のとおりです。

$ php -v
PHP 5.5.3-1ubuntu2.3 (cli) (built: Apr  4 2014 01:10:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
  • PHP 5.7.0 (今回ビルドしたもの)
$ ~/tmp/usr/bin/php -v
PHP 5.7.0-dev (cli) (built: May  4 2014 15:36:10)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.7.0-dev, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
  • HHVM 3.0.1
$ hhvm --version
HipHop VM 3.0.1 (rel)
Compiler: tags/HHVM-3.0.1-0-g97c0ac06000e060376fdac4a7970e954e77900d6
Repo schema: a1146d49c5ba0d6db903beb3a4ed8a3766fef182

実行結果は以下のとおりでした。

f:id:y_uti:20140507091204p:plain

追記 (2014-05-07)
Computer Language Benchmarks Gameベンチマークプログラムによる計測結果は以下のとおりでした*2。k-nucleotide が動かないのは、セマフォ関数がまだ実装されていないためです *3。pidigits が動かないのは、HHVM と同様に、GMP に対応していないためです。

f:id:y_uti:20140507201104p:plain

*1:これは習慣的に gcc と一緒に指定してしまったので、本当に必要だったかどうかは不明です

*2:以前に記事を書いたときからパッケージの更新等で環境が変わっているため、PHP 5.5.3 と HHVM でも再計測しました。以前と実行時間が異なるのはそのためです。

*3:msg_get_queue 関数の呼び出しで失敗しています。