在写程序的时候,经常会为是改用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)

<?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();
?>

最新文章

  1. linux系统中实现mongodb3.0.5数据库自动备份
  2. IOS之UIView的tag学习
  3. 将WSDL文件生成的Java文件
  4. Android 自学之基本界面组件(下)
  5. ThinkPHP中视图模型详解.
  6. JSPatch 成长之路
  7. SpringAOP导致@Autowired依赖注入失败
  8. 认识DWR
  9. Web Component总结
  10. django源码分析
  11. BZOJ-8-2115: [Wc2011] Xor
  12. Linux服务器同步Intetnet时间
  13. 023 SpringMVC拦截器
  14. JavaScript 上万条数据 导出Excel文件(改装版)
  15. dbcp第一次获取连接的时间问题
  16. Ubuntu下安装BeautifulSoup4
  17. 【LeetCode】215. Kth Largest Element in an Array (2 solutions)
  18. UNIX环境编程学习笔记(1):——出错处理errno
  19. python之面向对象之反射运用
  20. python基础-类的属性(类属性,实例属性,私有属性)

热门文章

  1. python学习笔记(18)--eclipse更换主题
  2. if的另一个实现思路
  3. JavaScrip——简单练习(抓错误信息,for循环,日期)
  4. java——关于数组的定义 和 访问修饰符的修饰内容
  5. Codeforces 558C Amr and Chemistry 暴力 - -
  6. ggplot2——简介
  7. ThinkPHP3.2 介绍
  8. mongodb自动关闭:页面太小,无法完成操作
  9. 关于Random中的随机数种子Seed
  10. Kernel.org 被黑,获取 Android 源码方法一则