使用Xdebug调试和优化PHP程序之[1]
作者:Haohappy
MSN: haohappy at msn.com
Blog: http://blog.csdn.net/haohappy2004
2006-07-04
为什么需要Debugger?
很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以看出来(当然可能还需要使用一些时间函数)。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓。
什么是Xdebug?
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。Xdebug现在的最新版本是xdebug 2.0.0beta6,支持PHP4/PHP5。
官方站点:www.Xdebug.org
如何安装Xdebug?
以PHP5.1.4,Windows平台为例(其它PHP版本,其它平台请参看官网文档):
1. 登录www.xdebug.org,在首页右侧有一个Windows modules,选择其中的PHP5.1.2+,下载php_xdebug-5.1.2-2.0.0beta6.dll文件;
2. 将下载的php_xdebug-5.1.2-2.0.0beta6.dll放到C:\php5\ext目录,重命名为php_xdebug.dll;
3. 编辑php.ini,加入下面几行:
extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="I:\Projects\xdebug"
xdebug.profiler_output_dir="I:\Projects\xdebug"
后面的目录“I:\Projects\xdebug”为你想要放置Xdebug输出的数据文件的目录,可自由设置。
4. 重启Apache;
5. 写一个test.php,内容为<?php phpinfo(); ?>,如果输出的内容中有看到xdebug,说明安装配置成功。
现在我们就可以开始使用Xdebug强大的功能了!
相关推荐
-
优化PHP代码的53条建议
1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2. 4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替. 5.注销那些不用的变量尤其是大数组,以便释放内存. 6.尽量避免使用__get,__set,__autol
-
优化PHP程序的方法小结
1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化,就对它做静态声明.速率可提升至4倍. 2. echo is faster than print. echo 比 print 快. 3. Use echo's multiple parameters instead of string concatenation. 使用echo的多重参数(译注:指用
-
优化php效率,提高php性能的一些方法
1.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题: 2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的: 3.优化Select SQL语句,在可能的情况下尽量少的进行Insert.Update操作(在update上,我被恶批过): 4.尽可能的使用PHP内部函数(但是我却为了找个
-
使用Xdebug调试和优化PHP程序之[1]
作者:Haohappy MSN: haohappy at msn.com Blog: http://blog.csdn.net/haohappy2004 2006-07-04 为什么需要Debugger? 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以看出来(当然可能还需要使用一些时间函数
-
使用NetBeans + Xdebug调试PHP程序的方法
按照网络上的资料配置好调试环境后实际试用了发现功能较为简陋,单文件调试还可,如果是跨文件调试项目就不那么舒服了,试用过程中因为DBGP插件也存在许多缺陷,烦恼不断,经常性地stack overflow,很是遗憾.后来想想Np++只是Editor,不要对它强求过多,插件的版本也比较低,存在许多BUG也是可以理解的,等它慢慢完善再说吧,开源社区的力量可是很强大的,^^.昨晚在坛里某位同志的博文里再次见到了NetBeans这个熟悉的字眼(之前选开发环境的时候因为NB非常强大,功能设置很人性化,界面非常
-
调试JavaScript/VBScript脚本程序(IE篇)
这两种方式,都可以使用Visual Studio来进行调试,先看大家用得比较频繁的网页脚本程序的调试: 1. 要调试网页里面的脚本程序,调试器需要宿主程序-这里也就是IE的支持,实际上所有的脚本程序解释器都实现了一个COM的调试接口.调试器通过查询解释器的这个接口,可以设置断点,查询变量以及捕捉异常,当然,查询到这个接口,需要宿主程序同意--至于如何实现这个接口,我们会在以后的文章里面讲到. 2. 默认情况下,IE是将脚本调试支持功能关闭的,因此你需要显示地打开它.打开IE,点击"工具"
-
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
时间:2020年8月15日10:25:47 Xdebug插件安装省略,自己百度安装,win和linux环境安装方式不一样. 注意和php版本匹配 1.phpinfo信息 2.php.ini配置 [xdebug] zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.remote_enable =1 xdebug.profiler_enable = On xdebug.auto_trace=On xdebug.profiler_enable_
-
vscode调试container中的程序的方法步骤
在写cmu14-445的project时,我希望在本地vscode编辑代码,然后在docker中编译和测试代码.但是如果测试出了问题,直接在本地调试就变得麻烦了.所以希望利用vscode进行远程调试. 参考官方文档,利用ssh + pipeTransport来完成,下面是我的launch.json和tasks.json最后的样子. { // Use IntelliSense to learn about possible attributes. // Hover to view descript
-
Go 内联优化让程序员爱不释手
目录 前言: 什么是内联? 为什么内联很重要? 函数调用的开销 基本知识 Go 中的开销 Go 里的优化 改善优化的机会 进行内联优化 不允许内联 允许内联 这些改进从何而来? 内联的限制 总结 前言: 这是一篇介绍 Go 编译器如何实现内联的文章,以及这种优化将如何影响你的 Go 代码. 什么是内联? 内联是将较小的函数合并到它们各自的调用者中的行为.其在不同的计算历史时期的做法不一样,如下: 早期:这种优化通常是由手工完成的. 现在:内联是在编译过程中自动进行的一类基本优化之一. 为什么内联
-
多阶段构建优化Go 程序Docker镜像
目录 引言 构建 Docker 镜像 是否可以再减小 Docker 镜像的大小? 引言 多阶段构建方式,是在 Dockerfile 中使用多个 FROM 指令,每个 FORM 指令都是一个新的构建阶段,并且可以方便地复制之前阶段的构件.让我们来看一个简单的 Go 程序.代码如下. 点击此处您可以获取代码. 构建 Docker 镜像 让我们来为它构建 Docker 镜像,Dockerfile 文件内容如下. FROM golang:1.19-alpine WORKDIR /build COPY g
-
使用XDebug调试及单元测试覆盖率分析
今天我就就自己对XDebug使用的一些体验做一小段分享.XDebug也是因为需要是用来生成覆盖率分析文件才安装的,刚接触不久,平时用的也不是很频繁,但是这个的确是一个好工具,如果想要依赖它来分析程序的性能还是需要自己亲手去试试.具体它有多好,请听我一一道来. <!--[if !supportLists]-->一.<!--[endif]-->安装篇(XDebug 和PHPUnit) A:安装XDebug: Xdebug网下载xdebug dll文件,存放到php加载的ext目录下(
-
详解优化iOS程序性能的25个方法
1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为你管理retain和release的过程,所以你就不必去手动干预了.忘掉代码段结尾的release简直像记得吃饭一样简单.而ARC会自动在底层为你做这些工作.除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存. 现在所有的iOS程序都用ARC了,这条可以忽略. 2. 在
随机推荐
- javascript实现ecshop搜索框键盘上下键切换控制
- python检查指定文件是否存在的方法
- 在aspx页面引用html页的写法
- 详细介绍.NET中的动态编译技术
- 如何使用PHP Embed SAPI实现Opcodes查看器
- C#使用HttpPost请求调用WebService的方法
- 使用设计模式中的单例模式来实现C++的boost库
- JavaScript中document.forms[0]与getElementByName区别
- Struts2实现生成动态验证码并验证实例代码
- 神奇的代码 通杀各种网站-可随意修改复制页面内容
- javascript将list转换成树状结构的实例
- java设计模式之装饰模式详细介绍
- Js 载入时选中文字的实现代码
- 鼠标放上去触发一个javascript提示框效果代码
- 深入理解Node.js的HTTP模块
- 简单的防盗链功能代码(iframe)
- JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
- Linux下的Apache与PHP安全设置技巧
- Java中static的特点
- java 代理模式及动态代理机制深入分析