转自:http://hi.baidu.com/thinkinginlamp/blog/item/62802f2e4b5edc584fc226a4.html
VLD全名是Vulcan Logic Disassembler,可以用来检测PHP脚本的执行情况。
安装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
通常人们总是说,单引号比双引号快。但正如上面的实验结果显示,如果仅仅是输出一个常量字符串,那么单引号和双引号的效率其实是一样的。
实际编程时,总会遇到各种各样的选择:是empty好还是isset好?是in_array好还是array_key_exists好?此时不妨试试VLD,对比看看各种选择的number of ops都是多少,并且具体都干了些什么。自然就能得到正确的选择,而不用靠着主观猜测去臆断。
挺有意思,有时间玩一下,不过有精力有能力的话最好可以研究一下PHP源码,这样更好,:)
分享到:
相关推荐
在VS2019下编译好的VLD,X64,方便检查内存泄漏、内存溢出等疑难问题。不是源代码,需要源代码可自行下载编译。
vld-10检查内存泄漏工具
截止2019年12月16日 最新版内存泄露检测工具,支持当前所有vs版本,使用步骤只需要添加头文件 #include<vld.h>
2016年 vld 最新版本源代码, vld 2.5 分享.
此外,内存问题存在一个共同的特点,它本身并不会有很明显的现象,当有异常出现时就很难检查问题的原因所在,这给调试内存问题带来了很大的难度。 VLD是一款用于VisualC++的免费内存泄漏检查工具。可以在...
第4代白盒测试方法实践之“内存泄露检查工具VLD如何与VcTester配合使用” 收藏 灵活自由是C语言的一大特色,但这个特色也难以避免的带来一些副作用,比如内存泄露。众所周知,内存泄露的问题比较复杂,程序正常运行...
Visual LeakDetector(VLD)是一款用于Visual C++的免费的内存泄露检测工具。它的特点有:(1)、它是免费开源的,采用LGPL协议;(2)、它可以得到内存泄露点的调用堆栈,可以获取到所在文件及行号;(3)、它可以得到泄露...
vld-1.9h-setup.exe广泛链接失效这里重传 vld2021最新源码
vld内存检查工具。vs工程包含lib目录,头文件目录,在观察内存泄露的文件中 #include "vld.h
vld内存泄漏检测工具 vld内存泄漏检测工具
vld2.1.zip windows下cpp内存泄露检测,vld2.1.zip windows下cpp内存泄露检测
vld检测 Qt内存泄露问题编译器一定要是MSVC。
内存泄露检测工具类,包含VLD V1.9h及VLD V2.5安装文件。
Visual C++ 内存泄露检测工具(VLD)
VLD(Visual Leak Detector)是一款用于 Visual C++ 的内存泄露检测工具。
windows下Qt creator 使用 VLD 工具的方法,下载 安装 使用 用浏览器打开
VLD(Visual Leak Detector)是一款用于VisualC++的免费内存泄漏检查工具。
vld库在vs2019下编译通过,在vld项目右键重新生成即可。 当前只编译了必需的两个库libformat及vld 另外里面也包含了x86和x64版本的dbghelp.dll
提供了VLD 源码,vld2.5.1的最新安装包,可以用于vs2008,vs2010-vs2015,方便需要资源的快速下载
VLD同样是一款开源检测内存泄露软件的简称:Visual Leak Detector。 初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂...