php5.6にvldをインストールして試す
これ
PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石
- 作者: 蒋池東龍
- 出版社/メーカー: 技術評論社
- 発売日: 2015/09/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
インストール
phpのためのリポジトリ
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm sudo rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
phpインストール
sudo yum install \ php56w php56w-bcmath php56w-cli php56w-common \ php56w-dba php56w-devel php56w-embedded php56w-enchant \ php56w-fpm php56w-gd php56w-imap php56w-interbase php56w-intl \ php56w-ldap php56w-mbstring php56w-mcrypt php56w-mssql php56w-mysqlnd \ php56w-odbc php56w-opcache php56w-pdo php56w-pear php56w-pecl-apcu \ php56w-pecl-gearman php56w-pecl-geoip php56w-pecl-imagick php56w-pecl-memcache \ php56w-pecl-xdebug php56w-pgsql php56w-phpdbg php56w-process \ php56w-pspell php56w-recode php56w-snmp php56w-soap php56w-tidy \ php56w-xml php56w-xmlrpc
vldインストール
sudo pecl install channel://pecl.php.net/vld-0.13.0
↓
Build process completed successfully Installing '/usr/lib64/php/modules/vld.so' install ok: channel://pecl.php.net/vld-0.13.0 configuration option "php_ini" is not set to php.ini location You should add "extension=vld.so" to php.ini
php.iniにモジュールを追加
sudo vi /etc/php.ini ---- ; vld extension=vld.so ----
実行1
sample1.php
<?php echo "hello, world";
sample1を実行
$ php -d vld.active=1 -d vld.execute=0 sample1.php Finding entry points Branch analysis from position: 0 Jump found. Position 1 = -2 filename: /home/vagrant/sample1.php function name: (null) number of ops: 3 compiled vars: none line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 2 0 E > EXT_STMT 1 ECHO 'hello%2C+world' 4 2 > RETURN 1 branch: # 0; line: 2- 4; sop: 0; eop: 2; out1: -2 path #1: 0, $
実行2
sample2.php
<?php $aaa = 10; echo $aaa; $aaa .= "ccc"; print $aaa; $bbb = [111, 222, 333]; echo $bbb[0]; echo $bbb[1]; echo $bbb[2];
sample2を実行
$ php -d vld.active=1 -d vld.execute=0 sample2.php Finding entry points Branch analysis from position: 0 Jump found. Position 1 = -2 filename: /home/vagrant/sample2.php function name: (null) number of ops: 24 compiled vars: !0 = $aaa, !1 = $bbb line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 2 0 E > EXT_STMT 1 ASSIGN !0, 10 3 2 EXT_STMT 3 ECHO !0 5 4 EXT_STMT 5 ASSIGN_CONCAT 0 !0, 'ccc' 6 6 EXT_STMT 7 PRINT ~2 !0 8 FREE ~2 8 9 EXT_STMT 10 INIT_ARRAY ~3 111 11 ADD_ARRAY_ELEMENT ~3 222 12 ADD_ARRAY_ELEMENT ~3 333 13 ASSIGN !1, ~3 9 14 EXT_STMT 15 FETCH_DIM_R $5 !1, 0 16 ECHO $5 10 17 EXT_STMT 18 FETCH_DIM_R $6 !1, 1 19 ECHO $6 11 20 EXT_STMT 21 FETCH_DIM_R $7 !1, 2 22 ECHO $7 13 23 > RETURN 1 branch: # 0; line: 2- 13; sop: 0; eop: 23; out1: -2 path #1: 0, $
所感
そこまで厳密に理解する気はないけどあったら便利かもくらいは理解しておきたい。
最近はもうパフォーマンスが上がってきているのでそこまで気にすることはないような気もするので