天天看点

用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)