1. 程式人生 > >PHP VLD在系統層級上分析不同函式行為

PHP VLD在系統層級上分析不同函式行為

  • 簡介 我們可以使用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應用開發