VLD擴展使用方法

VLD(Vulcan Logic Dumper)是一個掛鉤在Zend引擎下, 並且輸出PHP腳本生成的中間代碼(OPCode)的擴展。 它可以在一定程序上查看Zend引擎內部的一些實現原理。

VLD擴展是一個開源的項目下載地址

<?php
$start = new DateTime();
echo $start->format("Y-m-d H:i:s");

使用VLD查看OPCode信息

php -dvld.active=1 vld.php

-dvld.active=1 使用vld擴展
-dvld.execute=1 顯示值1,是否執行php文件
-dvld.verbosity=3 顯示詳細信息

Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /var/www/html/vld.php
function name:  (null)
number of ops:  14
compiled vars:  !0 = $start
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   EXT_STMT
         1        NEW                                              $1      :-5
         2        EXT_FCALL_BEGIN
         3        DO_FCALL                                      0
         4        EXT_FCALL_END
         5        ASSIGN                                                   !0, $1
   4     6        EXT_STMT
         7        INIT_METHOD_CALL                                         !0, 'format'
         8        EXT_FCALL_BEGIN
         9        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
        10        DO_FCALL                                      0  $4
        11        EXT_FCALL_END
        12        ECHO                                                     $4
   5    13      > RETURN                                                   1

branch: #  0; line:     2-    5; sop:     0; eop:    13; out0:  -2
path #1: 0,

上面是生產的opcode碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章