WEB性能日志工具

1.MySQL慢查询日志

2.Xdebug日志

说道PHP代码调试,对于有经验的PHPer,通过echo、print_r、var_dump函数,或PHP开发工具zend studio、editplus可解决大部分问题,但是对于PHP入门学习的童鞋来说有一定的难度,而且仅仅通过上述这些PHP调试手段,也很难准确发现PHP性能方面的问题,Xdebug是一个非常有用的PHP调试工具 。
Xdebug作为PHP调试工具,提供了丰富的调试函数,也可将Xdebug安装配置为zend studio、editplus调试PHP的第三方插件,通过开启自动跟踪(auto_trace)和分析器功能,可以直观的看到PHP源代码的性能数据,以便优化PHP代码。今天和大家分享PHP调试工具Xdebug安装以及配置方面的基础知识。

Xdebug安装教程
下载Xdebug       http://xdebug.org
首先我们需要下载Xdebug,务必根据安装的PHP版本,选择合适的Xdebug版本 ,如果你不清楚安装的PHP版本,你可以通过phpinfo()函数参看
安装Xdebug
将下载的php_xdebug-2.1.0-5.3-vc6.dll复制到PHP安装目录下的ext目录,ext目录专门用来存放PHP扩展库DLL文件。
配置php.ini
安装Xdebug的最后一步就是配置php.ini文件,在末尾添加

Java代码  
  1. [Xdebug]
  2. zend_extension="c:/php/ext/php_xdebug-2.1.0-5.3-vc6.dll"

最后重启Apache服务器,通过phpinfo()函数,可以看到

利用Xdebug测试脚本执行时间

使用Xdebug_time_index()来显示时间

测试脚本占用的内存:

xdebug_memory_usage()

xdebug还提供了一个xdebug_peak_memory_usage()来查看内存占用的峰值

Xdebug部分配置选项说明
xdebug.auto_trace = 1
是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为0

collect_params = 1
是否允许Xdebug跟踪函数参数,默认值为0

xdebug.collect_return = 1
是否允许Xdebug跟踪函数返回值,默认值为0

xdebug.profiler_enable = 1
打开xdebug的性能分析器,以文件形式存储,这项配置是不能以ini_set()函数配置的,默认值为0

xdebug.profiler_output_dir
性能分析文件的存放位置,默认值为/tmp

xdebug.profiler_output_name
性能分析文件的命名规则,默认值为cachegrind.out.%p

xdebug.trace_output_dir
函数调用跟踪信息输出文件目录,默认值为/tmp

xdebug.trace_output_name
函数调用跟踪信息输出文件命名规则,默认为trace.%c

特别说明:Xdebug的trace和profiler的输出文件名规则是可以更改的,比如将文件名命名为具体跟踪的PHP执行文件名、进程ID、随机数等,非常方便,更多的Xdebug配置选项说明,请参考官网的Xdebug配置选项说明。
至此PHP调试工具Xdebug教程之Xdebug的安装和配置就介绍完了,今后还将陆续介绍Xdebug如何在zend studio以及editplus中配置使用。

Xdebug的crontab定时删除一天之前的日志文件,只在测试环境装

Java代码  
  1. 0 0 * * * find /tmp/xdebug/ -ctime 1 |xargs rm -f

在优化php代码执行效率的过程中,有个好办法是利用XDebug或XHProf生成Profile文件,然后查看Profile文件分析整个程序的瓶颈在哪里。如果用XDebug生成Profile文件现在XDebug Profile的查看程序有好几个

WinCacheGrind是windows下的profile查看程序,使用起来感觉还不错,profile文件太大的话偶尔会崩溃。

KCachegrind是linux下的一个图形化profile查看工具,功能很强劲。

使用XDebug和WinCacheGrind分析PHP性能相关推荐

  1. 使用PowerShell调用MTools分析MongoDB性能并发送邮件

    使用PowerShell调用MTools分析MongoDB性能并发送邮件 问题描述: 在MongoDB日常运维中,经常需要查看连接数的趋势图.慢查询.Overflow语句.连接来源. 解决方案: 1. ...

  2. 用dotTace模仿下老赵的“使用Profiler分析程序性能”

    最近看到老赵博客"使用Profiler分析程序性能"(http://www.cnblogs.com/JeffreyZhao/archive/2009/12/22/profiler- ...

  3. MySQL第12天:MySQL索引优化分析之性能优化案例实践

    MySQL索引优化分析之性能优化案例实践 执行计划中各select_type含义可以看:MySQL第11天:MySQL索引优化分析之性能分析 https://weibo01.blog.csdn.net ...

  4. MySQL第11天:MySQL索引优化分析之性能分析

    MySQL索引优化分析之性能分析 一.MySQL Query Optimizer 二.MySQL常见瓶颈 三.Explain(执行计划) 1.什么是执行计划?          2.执行计划能干什么? ...

  5. 使用iostat分析IO性能

    使用iostat分析IO性能 对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量.系统处理IO请求的耗时,进而分析进程与操作系统的交互过程中IO方面是否存在瓶颈. 下 ...

  6. MySQL进阶篇(01):基于多个维度,分析服务器性能

    本文源码:GitHub·点这里 || GitEE·点这里 一.服务器性能简介 1.性能定义 服务器性能优化是一项非常艰巨的任务,当然也是很难处理的问题,在写这篇文章的时候,特意请教下运维大佬,硬件工程 ...

  7. 【转】HashMap,ArrayMap,SparseArray源码分析及性能对比

    HashMap,ArrayMap,SparseArray源码分析及性能对比 jjlanbupt 关注 2016.06.03 20:19* 字数 2165 阅读 7967评论 13喜欢 43 Array ...

  8. linux cpu监控方案,Linux性能优化和监控系列(二)分析CPU性能

    分析CPU性能 top命令提供了监控CPU性能的基本功能, 如果需要更加深入的挖掘CPU的性能问题, top所提供的信息不足以做到. 由于大多数人认为CPU性能是体现服务器性能的主要因素, 所以在遇到 ...

  9. vin-slam中调用ceres库内部代码分析与性能优化

    vin-slam中调用ceres库内部代码分析与性能优化 1,vin-slam中后端参数优化调用流程代码 2,ceres内部的求解流程(未完待续) 首先,很抱歉前几次上传的关于一些图像算法代码不全,主 ...

最新文章

  1. 译者招募 | 《Java编程思想》作者Bruce Eckel新作On Java 8
  2. 变焦即可判断物体的距离
  3. tcp/ip 协议栈Linux内核源码分析八 路由子系统分析三 路由表
  4. YOLOv3网络结构
  5. shell sort 最后一列排序_十个必知的排序算法|Python实例系列[1]
  6. windows 安装php7.4并配置phpstorm环境
  7. gitgithub 的使用
  8. 三层实例--加入信息
  9. 互联网晚报 | 06月14日 星期二 | 罗永浩称苹果有些产品明显退步;​旷视首席科学家孙剑博士去世;吉利拟收购魅族...
  10. 《仿美团SSM版》项目研发总结
  11. Java基础_week6
  12. migo获利能力段增加新字段
  13. c语言手写平衡二叉树非递归实现
  14. 三种方式,实现多可系统外网访问
  15. 股市的起源发展和意义
  16. win 7 中的快速启动栏的设置
  17. 中国联通和中国电信措手不及,中国移动主动发起5G流量价格战
  18. John介绍及常用命令使用说明
  19. 余数和除数以及被除数的关系
  20. 广域网优化技术领跑IT投资

热门文章

  1. 机器人学习--Imperial College London机器人学课程
  2. fireworks CS5安装教程
  3. 一个完整的Windows程序框架
  4. MFC 设置光标 SetCursor(HCURSOR hCursor)用法
  5. 用MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()
  6. 在html中引入css内部样式表使用,CSS样式学习笔记(三)html文件引入CSS的方法(2)...
  7. java语言实验报告,Java语言 实验报告(二)
  8. AI理论知识基础(19)-线性变换(1)
  9. 终于有人把文本分类讲明白了!
  10. 谷歌的算法笔记火了,技术真牛!