简介
我们可以使用VLD看到底层操作,包括每个函数都在做什么,正在进行哪些系统调用.安装
1. pecl install channel://pecl.php.net/vld-0.14.0 //版本自己根据情况选定
2.修改php.ini
3.查看phpinfo是否有vld
vld使用
//test.php
echo "hello"." "."world!";
//cli模式,执行完会出现一些分析信息
/usr/local/php72/bin/php -dvld.active=1 ./test.php
结果分析
下面展示的是php脚本所执行的Opcode信息.输出中含有执行的操作的个数,表中包含执行操作的PHP代码行号
Finding entry points
Branch analysis from position: 0
Jump found. (Code = 62) Position 1 = -2
filename: /data/machine/public/test.php
function name: (null)
number of ops: 3 //代码运行时在Opcode层级执行的操作总个数
compiled vars: none //所有变量集输出
line #* E I O op(操作的名称) fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > EXT_STMT
1 ECHO 'hello+world%21'
3 2 > RETURN 1
branch: # 0; line: 2- 3; sop: 0; eop: 2; out1: -2
path #1: 0,
参考
高性能PHP应用开发