转自: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源码,这样更好,:)
分享到:
相关推荐
VLD(Visual Leak Detector)是一个专为Visual Studio设计的开源内存泄漏检测工具,它能帮助开发者识别和定位程序中的内存泄漏问题。在本案例中,我们讨论的是VLD的2.5.1版本,这是一个适用于VS2012、VS2015和VS2017...
标题中的"VLD For VS2019"意味着这个压缩包提供了已经为Visual Studio 2019编译好的VLD版本,适用于x64架构。这使得开发者无需手动配置或编译源代码,就可以直接在64位项目中使用VLD进行内存诊断。 "Debug-v142"和...
VLD,全称为Valgrind Light Detection,是一个轻量级的内存检测工具,主要用于C++开发环境中的内存泄漏检测。这个工具的最新版本是2.5.1,它被设计成与Visual Studio集成,支持从VS2008到VS2015等多个版本的IDE。VLD...
"VLD内存泄漏检测"是一个解决这个问题的有效工具。 VLD,全称为Visual Leak Detector,是一款针对Visual C++的开源内存泄漏检测库。它能够帮助开发者在运行时检测和定位C++程序中的内存泄漏。在使用VLD时,你需要在...
通过运行这个安装程序,开发者可以在他们的Visual Studio项目中启用`vld`,以便在调试过程中自动检测内存泄漏。 `Readme-说明.htm`通常包含关于如何安装、配置和使用`vld`的详细步骤,以及可能的常见问题解答。文件...
Visual Leak Detector (VLD) 是一个针对Microsoft Visual Studio的扩展,它专为检测和防止内存泄漏而设计,特别是在VS2013环境下。这个工具在开发过程中扮演着重要的角色,因为它可以帮助开发者实时发现并解决潜在的...
为了检测和解决Qt应用程序中的内存泄漏问题,Visual Leak Detector (VLD) 是一个非常有用的工具,特别是当你的编译器是Microsoft Visual C++ (MSVC)时。 标题"vld检测 Qt内存泄露问题编译器一定要是MSVC"指出了使用...
VLD的一个优点是它可以与Visual Studio的调试器无缝集成。这意味着开发者可以利用现有的调试工具来查看和分析内存泄漏。此外,VLD还支持多线程环境下的内存泄漏检测,这对于现代多核应用的开发至关重要。 在压缩包...
1. **安装**:提供的文件“vld-2.2.3-setup.exe”是一个安装程序,用于在开发环境中集成VLD。安装后,VLD的相关库文件将被添加到系统路径或特定的项目目录下。 2. **配置**:在C++项目的构建设置中,需要包含VLD的...
VLD,全称为Visual Leak Detector,是一款开源的内存泄漏检测工具,主要针对Windows平台上的C++应用程序。...通过研究源代码,开发者可以更好地理解内存管理的细节,同时也能对VLD进行二次开发,满足特定项目的需求。
4. **集成到IDE**:VLD可以与Visual Studio IDE很好地集成,可以在调试器中查看和分析内存泄漏报告。 **注意事项** - VLD不应在生产环境中使用,因为它会增加运行时的开销。 - 避免在不启用VLD的情况下编译和链接,...
1. 将编译好的VLD库(通常为.lib文件)和对应的dbghelp.dll添加到目标项目的依赖项中。 2. 在应用程序启动时初始化VLD,通常是通过预处理器宏`#define _VLD_INIT`来实现。 3. 编译并运行你的程序,VLD会在程序结束时...
为了有效地检测和解决这类问题,开发者可以借助各种工具,其中VLD(Visual Leak Detector)是一个专为Visual C++设计的免费内存泄漏检测工具。 VLD全称为Visual Leak Detector,它是一个轻量级且易于集成的库,能够...
VLD-10,全称为Visual Leak Detector for Windows版本10,是一款专为Windows平台设计的内存泄漏检测工具。在软件开发过程中,尤其是在C++环境中,内存管理是至关重要的,而内存泄漏则可能导致程序崩溃、系统资源耗尽...
首先,下载并运行这个安装程序,按照提示进行安装。安装完成后,VLD的相关库文件会添加到系统的PATH环境变量中,使得在编译时能自动链接到VLD。同时,VLD的头文件和库文件也会被安装到指定的目录,供开发过程中引用...
VLD(Visual Leak Detector)是一款针对Windows平台的开源内存泄漏检测工具,专为Visual Studio设计。它能够集成到你的Visual Studio开发环境中,帮助开发者在调试过程中查找和定位内存泄漏问题,从而提高软件的质量...
首先,你需要将vld-10.zip解压缩,这个文件包含了VLD的二进制库。接着,将解压后的库文件添加到你的项目链接器设置中。对于开发者来说,通常需要链接`vld.lib`。同时,确保你的项目配置为调试模式,因为VLD在发布...
VLD的一个重要优点是它可以自动关联内存分配到源代码的具体位置,使得定位问题更为直观。此外,由于VLD是动态加载的,因此不影响程序的正常运行时行为,只需在调试时启用即可。 需要注意的是,虽然VLD对于大多数...
为了帮助开发者有效地检测和定位C++程序中的内存泄漏问题,"c++ vld 内存泄露检测" 提供了一个简单易用的解决方案。 VLD,全称Visual Leak Detector,是一款为Visual C++编译器设计的开源内存泄漏检测工具。它通过...
VLD 2.5.1是该工具的一个版本,可能包含了一些新特性、改进或修复了之前版本中的问题。在安装和使用VLD时,通常需要按照以下步骤操作: 1. **下载与安装**:首先,你需要从官方网站或者可靠的源获取`vld2.5.1.zip`...