91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如果安裝與使用vld查看php的opcode代碼

發布時間:2021-10-18 11:57:49 來源:億速云 閱讀:154 作者:小新 欄目:web開發

這篇文章主要為大家展示了“如果安裝與使用vld查看php的opcode代碼”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如果安裝與使用vld查看php的opcode代碼”這篇文章吧。

需要分析PHP代碼的性能,或者說實現同樣功能的代碼到底哪個更好呢?或者說想知道底層的實現可以使用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查看php的opcode代碼

--------------------------------

至此,VLD就安裝完了。寫個簡單的test.php

<?php

$a='123';   

echo $a;  

?>

# php -dvld.active=1 ./test.php

如果沒有設置php環境變量的話

查看結果

如果安裝與使用vld查看php的opcode代碼

# php -dvld.active=1 ./test.php

如果沒有設置php環境變量的話

查看結果

如上為VLD輸出的PHP代碼生成的中間代碼的信息,說明如下:

Branch analysis from position 這條信息多在分析數組時使用。

Return found 是否返回,這個基本上有都有。

filename 分析的文件名

function name 函數名,針對每個函數VLD都會生成一段如上的獨立的信息,這里顯示當前函數的名稱

number of ops 生成的操作數

compiled vars 編譯期間的變量,這些變量是在PHP5后添加的,它是一個緩存優化。這樣的變量在PHP源碼中以IS_CV標記。

op list 生成的中間代碼的變量列表

使用-dvld.active參數輸出的是VLD默認設置,如果想看更加詳細的內容。可以使用-dvld.verbosity參數。

#php -dvld.active=1 -dvld.verbosity=3 text.php

-dvld.verbosity=3是VLD在當前版本可以顯示的最詳細的信息.

如果我們只是想要看輸出的中間代碼,并不想執行這段PHP代碼,可以使用-dvld.execute=0來禁用代碼的執行

#php -dvld.active=1 -dvld.execute=0 text.php

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,輸出內容

使用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代碼

以上是“如果安裝與使用vld查看php的opcode代碼”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭山县| 梓潼县| 门源| 广水市| 卓尼县| 永州市| 虎林市| 西宁市| 舒兰市| 汉源县| 宝坻区| 高淳县| 始兴县| 晋宁县| 崇信县| 娄烦县| 桐城市| 江都市| 利辛县| 金华市| 福建省| 隆化县| 乌恰县| 仁布县| 博白县| 浦东新区| 南涧| 屏南县| 高平市| 中江县| 秦皇岛市| 奎屯市| 民权县| 隆林| 南澳县| 皮山县| 东海县| 凌云县| 雅安市| 凤翔县| 大港区|