這篇文章主要為大家展示了“如果安裝與使用vld查看php的opcode代碼”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如果安裝與使用vld查看php的opcode代碼”這篇文章吧。
需要分析PHP代碼的性能,或者說實現(xiàn)同樣功能的代碼到底哪個更好呢?或者說想知道底層的實現(xiàn)可以使用VLD查看opcode
下載與安裝VLD
# wget http://pecl.php.net/get/vld-0.11.2.tgz
# tar zxvf vld-0.11.2.tgz
# cd ./vld-0.11.2
# /usr/local/php/bin/phpize 或者直接phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-vld
# make && make install
---------------------------------
編輯php.ini文件激活vld擴展:
php.ini位置
#cd /usr/local/php/lib
增加
extension=vld.so
重啟Apache:
# /usr/local/apache2/bin/apachectl restart
---------------------------------
查看phpinfo()信息
--------------------------------
至此,VLD就安裝完了。寫個簡單的test.php
<?php
$a='123';
echo $a;
?>
# php -dvld.active=1 ./test.php
如果沒有設置php環(huán)境變量的話
查看結果
# php -dvld.active=1 ./test.php
如果沒有設置php環(huán)境變量的話
查看結果
如上為VLD輸出的PHP代碼生成的中間代碼的信息,說明如下:
Branch analysis from position 這條信息多在分析數(shù)組時使用。
Return found 是否返回,這個基本上有都有。
filename 分析的文件名
function name 函數(shù)名,針對每個函數(shù)VLD都會生成一段如上的獨立的信息,這里顯示當前函數(shù)的名稱
number of ops 生成的操作數(shù)
compiled vars 編譯期間的變量,這些變量是在PHP5后添加的,它是一個緩存優(yōu)化。這樣的變量在PHP源碼中以IS_CV標記。
op list 生成的中間代碼的變量列表
使用-dvld.active參數(shù)輸出的是VLD默認設置,如果想看更加詳細的內(nèi)容??梢允褂?dvld.verbosity參數(shù)。
#php -dvld.active=1 -dvld.verbosity=3 text.php
-dvld.verbosity=3是VLD在當前版本可以顯示的最詳細的信息.
如果我們只是想要看輸出的中間代碼,并不想執(zhí)行這段PHP代碼,可以使用-dvld.execute=0來禁用代碼的執(zhí)行
#php -dvld.active=1 -dvld.execute=0 text.php
VLD擴展的參數(shù)列表:
-dvld.active 是否在執(zhí)行PHP時激活VLD掛鉤,默認為0,表示禁用??梢允褂?dvld.active=1啟用。
-dvld.skip_prepend 是否跳過php.ini配置文件中auto_prepend_file指定的文件, 默認為0,即不跳過包含的文件,顯示這些包含的文件中的代碼所生成的中間代碼。此參數(shù)生效有一個前提條件:-dvld.execute=0
-dvld.skip_append 是否跳過php.ini配置文件中auto_append_file指定的文件, 默認為0,即不跳過包含的文件,顯示這些包含的文件中的代碼所生成的中間代碼。此參數(shù)生效有一個前提條件:-dvld.execute=0
-dvld.execute 是否執(zhí)行這段PHP腳本,默認值為1,表示執(zhí)行??梢允褂?dvld.execute=0,表示只顯示中間代碼,不執(zhí)行生成的中間代碼。
-dvld.format 是否以自定義的格式顯示,默認為0,表示否??梢允褂?dvld.format=1,表示以自己定義的格式顯示。這里自定義的格式輸出是以-dvld.col_sep指定的參數(shù)間隔
-dvld.col_sep 在-dvld.format參數(shù)啟用時此函數(shù)才會有效,默認為 “\t”。
-dvld.verbosity 是否顯示更詳細的信息,默認為1,其值可以為0,1,2,3 其實比0小的也可以,只是效果和0一樣,比如0.1之類,但是負數(shù)除外,負數(shù)和效果和3的效果一樣 比3大的值也是可以的,只是效果和3一樣。
-dvld.save_dir 指定文件輸出的路徑,默認路徑為/tmp。
-dvld.save_paths 控制是否輸出文件,默認為0,表示不輸出文件
-dvld.dump_paths 控制輸出的內(nèi)容,現(xiàn)在只有0和1兩種情況,默認為1,輸出內(nèi)容
使用VLD比較代碼差異
代碼text1.php
[php] view plain copy
$var = 111;
$str = "AAA " . $var . " BBB";
代碼text2.php
[php] view plain copy
$var = 111;
$str = "AAA $var BBB";
以上是“如果安裝與使用vld查看php的opcode代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)站標題:如果安裝與使用vld查看php的opcode代碼-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://chinadenli.net/article8/dosiip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、自適應網(wǎng)站、網(wǎng)站導航、App設計、ChatGPT、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)