PHP性能优化工具vld扩展
这个工具能帮助我们PHP代码编译成opcode代码过程,对性能优化与以及才查看底层php代码的很有提升,也对学习很有帮助
测试环境:
1.centos7.4 linux
2.宝塔一键端,这个快,apche+php7.1+mysql5.5
3.xshell
现在开始:
1.首先需要登录linux默认会在root目录下,先从pecl下载,截止今天最新版本2019.05月份更新
wget https://pecl.php.net/get/vld-0.16.0.tgz
2.解压,并且进入目录
tar zxvf vld-0.16.0.tgz
cd vld-0.16.0/
3.找到本地phpize用来构建PECL扩展用的,不知道,请执行以下命令
find / -name phpize -type f #不知道执行
/www/server/php/71/bin/phpize #知道就直接这样执行
4.找到本地的php-config,不知道也执行以下命令
find / -name php-config -type f #不知道执行
./configure --with-php-config=/www/server/php/71/bin/php-config --enable-vld
复制以上,将中间部分替换你的php-config路径
5.接下来配置
make && make install
6.复制以下路径
7.找到php.ini配置,跳到最后一行
find / -name php.ini -type f #不知道执行
vim /www/server/php/71/etc/php.ini #上面得到的结果之前加一个vim
进去后,切掉输入法,跳到最后一行 两个大GG
8.添加刚才第六步的路径在后面添加vld.so,或者将你路径换了,最后保存.
[vld]
extension = /www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/vld.so
9.重启apche,如果是nginx也要
service httpd restart
10.查看是否安装成功
php -m | grep vld
11.最后就可以测试了,切换到你程序的目录,执行你要的查看的程序
php -dvld.active=1 -dvld.execute=0 test.php # test.php换成你的文件
参数说明:
vld扩展主要的两个参数列表
-dvld.active 默认为0。代表是否在运行PHP文件是激活vld挂钩,
-dvld.execute 默认为1。代表只显示中间代码,不执行生成的中间代码,可以置0,表示不执行中间生成代码
如上为VLD输出的PHP代码生成的中间代码的信息,说明如下:
Branch analysis from position 这条信息多在分析数组时使用。
Return found 是否返回,这个基本上有都有。
filename 分析的文件名
function name 函数名,针对每个函数VLD都会生成一段如上的独立的信息,这里显示当前函数的名称
number of ops 生成的操作数
compiled vars 编译期间的变量,这些变量是在PHP5后添加的,它是一个缓存优化。这样的变量在PHP源码中以IS_CV标记。
op list 生成的中间代码的变量列表
使用-dvld.active参数输出的是VLD默认设置,如果想看更加详细的内容。可以使用-dvld.verbosity参数