天天看點

用VLD檢測你的php代碼執行效率~~

在寫程式的時候,經常會為是改用empty()還是isset好,或是用單引号還是雙引号來顯示連接配接字元串而發出疑問,現在好了。我們其實可以通過程式很科學的得出精确的答案。知道我們的程式到底怎樣寫效率會更好。

全名是vulcan

logic disassembler,可以用來檢測php腳本的執行情況。

1)

安裝vld:

wget

http://pecl.php.net/get/vld

tar zxvf vld-0.9.1.tgz

cd

vld-0.9.1

phpize

./configure

make

install

編輯php.ini檔案激活vld擴充:

extension=vld.so

别忘了重新開機apache。

下面我們看看如何檢測php腳本的執行情況,看看php是如何處理單雙引号字元串的:

s.php(單引号):<?php

echo ‘hello, world.‘; ?>

d.php(雙引号):<?php echo "hello, world.";

?>

開始檢測:

php -dvld.active=1 s.php或者d.php

結果不管是s.php還是d.php,number

of ops都是3,内容也都一樣:

number of ops: 3

compiled vars:

none

line     #

op                          

fetch          ext return

operands

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

1     0

echo                                                    

‘hello%2c+world.‘

   2     1

return                                                  

1

         2*

zend_handle_exception

通常人們總是說,單引号比雙引号快。但正如上面的實驗結果顯示,如果僅僅是輸出一個常量字元串,那麼單引号和雙引号的效率其實是一樣的。大家可以試試連接配接兩個變量時他們的效率是不是還是一樣呢

2)