- DSAS開発者の部屋:phpを高速化する computed goto
# tar xvfz php-5.2.9.tar.gz # cd php-5.2.9/Zend/ # php zend_vm_gen.php --with-vm-kind=GOTO # cd ../ # ./configure --prefix=/usr/local/php-5.2.9-goto --with-apxs2 --enable-mbstring --enable-zend-multibyte --with-mysql --with-zend-vm=GOTO # make # make installPHPをビルドするときcomputed gotoを使うと速くなるみたい、推奨。 試しなので、オプションは最低限のものを入れといた。 試してみた結果。場所はLocalCent。 funcはデフォ、gotoはcomputed gotoを使った方。
[root@localhost Zend]# /usr/local/php-5.2.9-func/bin/php bench.php simple 0.218 simplecall 0.247 simpleucall 0.380 simpleudcall 0.451 mandel 0.666 mandel2 0.796 ackermann(7) 0.484 ary(50000) 0.032 ary2(50000) 0.026 ary3(2000) 0.312 fibo(30) 1.183 hash1(50000) 0.039 hash2(500) 0.056 heapsort(20000) 0.189 matrix(20) 0.155 nestedloop(12) 0.346 sieve(30) 0.142 strcat(200000) 0.024 ------------------------ Total 5.746 [root@localhost Zend]# /usr/local/php-5.2.9-goto/bin/php bench.php simple 0.136 simplecall 0.220 simpleucall 0.352 simpleudcall 0.402 mandel 0.516 mandel2 0.612 ackermann(7) 0.455 ary(50000) 0.031 ary2(50000) 0.007 ary3(2000) 0.282 fibo(30) 1.064 hash1(50000) 0.037 hash2(500) 0.048 heapsort(20000) 0.141 matrix(20) 0.150 nestedloop(12) 0.243 sieve(30) 0.119 strcat(200000) 0.023 ------------------------ Total 4.839