PHP执行慢分析工具xdebug + webgrind

简介:

经常碰到用户PHP网站打开速度慢,运维环境配置的锅?PHP代码的锅?当你发现程序变慢,但有时我们不知道具体是哪块代码执行慢(排除环境问题),或者哪个方法占用了太长的执行时间,这时我们就需要一个调试工具,来帮我们记录程序执行过程中的一些具体信息,包括类、方法名、执行时间、次数等信息,今天介绍的工具是xdebug以及他的结果分析展示工具webgrind。

xdebug安装
cd /root/oneinstack/src
wget https://xdebug.org/files/xdebug-2.5.5.tgz
tar xzf xdebug-2.5.5.tgz
cd xdebug-2.5.5
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
php加载xdebug模块

cat > /usr/local/php/etc/php.d/ext-xdebug.ini << EOF
[xdebug]
zend_extension=xdebug.so
xdebug.trace_output_dir=/tmp/xdebug
xdebug.profiler_output_dir = /tmp/xdebug
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = 1
EOF
创建xdebug目录

mkdir /tmp/xdebug
chown www.www /tmp/xdebug
webgrind安装
webgrind是php代码,依赖PHP环境, 将webgrind代码拷贝到你的apache或者nginx的web路径下,可以正常访问.

cd /data/wwwroot/www.example.com
git clone https://github.com/jokkedk/webgrind.git
chown -R www.www /data/wwwroot/www.example.com
vim /data/wwwroot/www.example.com/webgrind/config.php
static $storageDir = '/tmp/webgrind';
static $profilerDir = '/tmp/xdebug';
创建webgrind目录

mkdir /tmp/webgrind
chown www.www /tmp/webgrind
分析
然后运行你的php项目,这时xdebug会在/tmp/xdebug/下生成一个 cachegrind.out.* 的文件。在页面打开webgrind首页。

http://www.example.com/webgrind/index.php

Invocation Count:函数调用次数
Total Self Cost:函数本身花费的时间
Total Inclusive Cost:包含内部函数花费的时间

目录
相关文章
|
3月前
|
JavaScript 前端开发 API
PHP 发展简史:从个人工具到互联网基石
PHP 起源于 1994 年,由 Rasmus Lerdorf 为简化网页开发而创建,后逐步演变为功能强大的编程语言。从最初的个人工具到支撑全球 77.4% 的服务器端脚本市场,PHP 凭借易用性、稳定性和广泛的生态支持,在 Web 开发领域占据重要地位。经历 PHP 6 的挫折后,PHP 7 实现性能飞跃,如今已更新至 PHP 8.2,持续为 WordPress、Facebook、Wikipedia 等大型项目提供动力。PHP 的发展历程,不仅是一部技术演进史,更映射了互联网时代的变迁。
233 8
|
2月前
|
NoSQL API PHP
PHP-Casbin:一个让开发者不再为权限控制 “重复造轮子” 的工具
PHP-Casbin 是一个轻量、灵活的开源权限框架,支持 ACL、RBAC、ABAC 等多种模型,帮助 PHP 开发者高效解决权限控制难题。它具备跨框架、跨语言、动态权限、多租户隔离等能力,适用于电商、SaaS、政企系统等复杂场景,让开发者摆脱重复造轮子,提升项目安全与可维护性。
178 0
|
1月前
|
设计模式 安全 PHP
PHP 5与PHP 7的主要区别分析
综上所述,PHP 7相比于PHP 5,不仅在性能上有显著提升,还增加了许多新特性和改进,使得PHP语言更加强大和现代化。同时,弃用了一些过时的特性和函数,更加注重代码的健壯性和安全性。然而,这些改变也意味着从PHP 5迁移到PHP 7可能需要一些代码的调整和优化。
137 10
|
1月前
|
存储 监控 算法
基于 PHP 布隆过滤器的局域网监控管理工具异常行为检测算法研究
布隆过滤器以其高效的空间利用率和毫秒级查询性能,为局域网监控管理工具提供轻量化异常设备检测方案。相比传统数据库,显著降低延迟与资源消耗,适配边缘设备部署需求,提升网络安全实时防护能力。(238字)
146 0
|
PHP 开发工具 开发者
Xdebug在PHP中的应用
Xdebug 是一款非常实用的 PHP 调试工具,它为开发者提供了丰富的功能和便利,帮助开发者更高效地进行调试工作。熟练掌握 Xdebug 的使用方法,对于提高 PHP 开发质量和效率具有重要意义。
284 56
|
IDE PHP 开发工具
除了Xdebug,还有哪些常用的PHP调试工具?
这些调试工具各有特点,开发者可以根据自己的需求和习惯选择适合的工具。在实际开发中,结合多种工具的使用往往能够更全面、更深入地进行调试,提高开发效率和代码质量。同时,随着技术的不断发展,新的调试工具也在不断涌现,开发者需要保持学习和关注,以便及时掌握最新的调试技术和工具。
378 1
|
7月前
|
关系型数据库 MySQL PHP
利用PhpStorm、phpstudy和xdebug快速构建PHP调试环境
至此,我们已经完成了PHP调试环境的构建。现在,你可以在PhpStorm中打开你的PHP项目,设置断点,然后开始调试你的代码了。希望这个指南能帮助你快速构建PHP调试环境,提高你的开发效率。
466 26
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
10月前
|
搜索推荐 PHP SEO
SEO化在线检测分析PHP源码
SEO化在线检测分析PHP源码,有助于确定您的 SEO 错误并优化您的互联网网页内容以获得更高的搜索引擎评级 还提供与您的竞争对手的逐个方面的 SEO 比较。分析报告甚至可以下载为 PDF 文件以供离线使用 上传服务器后解压安装
254 18
|
IDE PHP 开发工具
【PHP开发专栏】Xdebug在PHP调试中的应用
Xdebug 是一个功能强大的 PHP 扩展,提供调试、代码分析和性能分析等功能。本文介绍了 Xdebug 的基本概念、安装配置方法及在 PHP 调试中的应用技巧,包括断点调试、堆栈跟踪、远程调试和性能分析等。通过合理使用 Xdebug,可以显著提高调试效率和代码质量。
284 3