PHP性能优化工具--vld
PHP性能优化工具--vld
vld介绍
- vld是一个在Zend引擎中,以挂钩的方式实现的用于输出PHP脚本生成的中间代码(执行单元)的扩展。 它可以在一定程序上查看Zend引擎内部的一些实现原理,是我们学习PHP源码的必备良器。
- 现在最新版本是 0.14.0(2016-12-18),它的作用是:显示转储PHP脚本(opcode)的内部表示(来自PECL的vld简介)。简单来说,可以查看PHP程序的opcode。
- pagelist:http://pecl.php.net/package/vld
wget http://pecl.php.net/get/vld-0.14.0.tgz #download vldtar zxvf vld-0.14.0.tgz #Decompression packagecd vld-0.14.0 #change dirphpize #Expanded php extension modulelocate php-config #use locate find php-config path如果提示not found locate command,使用以下命令安装:yum -y install mlocate安装完毕后使用updatedb命令更新数据后可以直接使用
通过以下命令进行编译安装:./configure --with-php-config=/usr/bin/php-config --enable-vldmake && make install
如果在安装过程中出现以下错误:configure: error: no acceptable C compil
configure: error: no acceptable C compiler found in $PATH
./configure --with-php-config=/usr/bin/php-config --enable-vldchecking for grep that handles long lines and -e... /usr/bin/grepchecking for egrep... /usr/bin/grep -Echecking for a sed that does not truncate output... /usr/bin/sedchecking for cc... nochecking for gcc... noconfigure: error: in `/data/vld-0.14.0':configure: error: no acceptable C compiler found in $PATHSee `config.log' for more details请使用yum -y install gcc进行gcc安装,然后重新编译
安装完毕后,在php.ini中添加对应的vld.so扩展,然后重新启动php-fpm,nginx如果查看扩展是否安装成功,可以通过以下两个方法查看:1)命令行 #php -m | grep vld 查看2)phpinfo
vld扩展使用方式:
vld不能单独使用,它需要和PHP命令一起。它主要有两个参数分别是 -dvld.active (等于1证明是使用vld扩展)和 -dvld.execute (等于1证明是需要执该PHP文件,默认是1)。
测试命令:# php -dvld.active=1 -dvld.execute=0 test.php(就是指运行test.php的时候,使用vld插件,不执行,只显示opcode)
总结一下,VLD扩展的参数列表:-dvld.active 是否在执行PHP时激活VLD挂钩,默认为0,表示禁用。可以使用-dvld.active=1启用。-dvld.skip_prepend 是否跳过php.ini配置文件中auto_prepend_file指定的文件, 默认为0,即不跳过包含的文件,显示这些包含的文件中的代码所生成的中间代码。此参数生效有一个前提条件:-dvld.execute=0-dvld.skip_append 是否跳过php.ini配置文件中auto_append_file指定的文件, 默认为0,即不跳过包含的文件,显示这些包含的文件中的代码所生成的中间代码。此参数生效有一个前提条件:-dvld.execute=0-dvld.execute 是否执行这段PHP脚本,默认值为1,表示执行。可以使用-dvld.execute=0,表示只显示中间代码,不执行生成的中间代码。-dvld.format 是否以自定义的格式显示,默认为0,表示否。可以使用-dvld.format=1,表示以自己定义的格式显示。这里自定义的格式输出是以-dvld.col_sep指定的参数间隔-dvld.col_sep 在-dvld.format参数启用时此函数才会有效,默认为 “\t”。-dvld.verbosity 是否显示更详细的信息,默认为1,其值可以为0,1,2,3 其实比0小的也可以,只是效果和0一样,比如0.1之类,但是负数除外,负数和效果和3的效果一样 比3大的值也是可以的,只是效果和3一样。-dvld.save_dir 指定文件输出的路径,默认路径为/tmp。-dvld.save_paths 控制是否输出文件,默认为0,表示不输出文件-dvld.dump_paths 控制输出的内容,现在只有0和1两种情况,默认为1,输出内容
热门日志
分类
- Django(4)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(32)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- about(1)
- git(9)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(2)
- 架构(18)
- Vue(1)
- game(2)
- Html(6)
- Java(8)
- Mysql(37)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(72)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Php(102)
- Windows(8)
- Message(48)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(12)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)