检测你的php代码执行效率
2014-04-29 17:44
591 查看
在写程序的时候,经常会为是改用empty()还是isset好,或是用单引号还是双引号来显示连接字符串而发出疑问,现在好了。我们其实可以通过程序很科学的得出精确的答案。知道我们的程序到底怎样写效率会更好。
VLD全名是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)
VLD全名是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)
<?php /* *文件:PHP_OperationTime.php *功能:检测PHP执行效率 *作者:感染源 *时间:2007-04-29 */ class timer { var $StartTime = 0; var $StopTime = 0; var $TimeSpent = 0; function start() { $this->StartTime = microtime(); } function stop() { $this->StopTime = microtime(); } function spent() { if($this->TimeSpent) return $this->TimeSpent; else { $StartMicro = substr($this->StartTime,0,10); $StartSecond = substr($this->StartTime,11,10); $StopMicro = substr($this->StopTime,0,10); $StopSecond = substr($this->StopTime,11,10); $start = doubleval($StartMicro)+$StartSecond; $stop = doubleval($StopMicro)+$StartSecond; $this->TimeSpent = $stop-$start; return substr($this->TimeSpent,0,8).'秒'; } } }//Class Timer $ct = new timer; $ct->start(); //include_once('keygen.php'); include_once('../GetRate/inputnum.php'); $ct->stop(); echo '<br>'; echo $ct->spent(); ?>
相关文章推荐
- php url字符转义操作
- PHP获取IP地址及根据IP判断城市实现城市切换或跳转
- Windows L2TP客户端设置
- SetProcessWorkingSetSize 降低程序运行内存
- vertpool
- 在PHP当中制作隔行换色的效果以及制作上下翻页的效果!
- pureftp读取目录列表失败解决
- php--连接数据库【不懂php也能写接口】
- PHP中使用foreach()遍历二维数组
- php快速排序的实现
- thinkphp的分页格式自定义
- EditPlus 快速去重
- PHP5接口技术入门
- 常用PHP 函数库
- 在windows下编译php扩展
- thinkphp url 项目分组
- PHP扩展学习:编写一个类
- tftp简单配置
- php 屏蔽中国IP方法
- php生成二维码带logo