php性能分析工具:xhprof

简介: php性能分析工具:xhprof

xhprof是php的一个性能分析扩展,它可以帮助我们查看php执行情况,有助于我们优化php的执行语句.

安装

xhprof的开源地址为:https://github.com/longxinH/xhprof

版本下载地址:https://github.com/longxinH/xhprof/releases

安装命令:

wget https://github.com/longxinH/xhprof/archive/v2.1.0.tar.gz
 tar -zvxf v2.1.0.tar.gz
 cd xhprof-2.1.0/
 cd extension/
 phpize
 ./configure --with-php-config=/www/server/php/72/bin/php-config 
 make && make install

在php.ini增加配置

\[xhprof\]
extension=xhprof.so;
xhprof.output_dir=/tmp/xhprof

说明

./configure 不一定需要增加--with-php-config,只有当服务器有多个版本或者php-config没有在/usr/bin的时候才需要

xhprof的output_dir配置项需要可读可写权限,可以自己设定

使用

测试类引入:

还记得之前下载的源码吗?把里面的xhprof_lib目录复制出来,复制到项目目录,并且引入:

include\_once '/home/tioncico/www/xhprof/xhprof\_lib/utils/xhprof_lib.php';
include\_once '/home/tioncico/www/xhprof/xhprof\_lib/utils/xhprof_runs.php';

开启性能分析:xhprof_enable函数

xhprof\_enable(XHPROF\_FLAGS\_CPU|XHPROF\_FLAGS\_MEMORY|XHPROF\_FLAGS\_NO\_BUILTINS);
//XHPROF\_FLAGS\_NO_BUILTINS (integer)
//使得跳过所有内置(内部)函数。
//XHPROF\_FLAGS\_CPU (integer)
//使输出的性能数据中添加 CPU 数据。
//XHPROF\_FLAGS\_MEMORY (integer)
//使输出的性能数据中添加内存数据。

开启性能分析之后,php的代码都会被监控,进行分析运行状态

关闭性能分析

$xhprof\_data = xhprof\_disable();//关闭性能分析
$xhprof\_runs = new \\XHProfRuns\_Default();
$run\_id = $xhprof\_runs->save\_run($xhprof\_data, 'your\_project');//把性能分析的报告保存到output\_dir目录

查看性能分析:

还记得之前下载的源码吗?把里面的xhprof_html目录复制出来,单独做成一个目录,并且通过nginx或者apache配置成一个可访问的php站点:

image.png

并且把之前的xhprof_lib复制一份到同级目录:

image.png

访问这个站点:

image.png

点击查看:

image.png

这样,就可以查看到所有代码执行的cpu消耗,执行时间,占用情况了,根据这份数据,去优化最耗时间的代码即可

点击image.png

可查看流程图:

目录
相关文章
|
4月前
|
JavaScript 前端开发 API
PHP 发展简史:从个人工具到互联网基石
PHP 起源于 1994 年,由 Rasmus Lerdorf 为简化网页开发而创建,后逐步演变为功能强大的编程语言。从最初的个人工具到支撑全球 77.4% 的服务器端脚本市场,PHP 凭借易用性、稳定性和广泛的生态支持,在 Web 开发领域占据重要地位。经历 PHP 6 的挫折后,PHP 7 实现性能飞跃,如今已更新至 PHP 8.2,持续为 WordPress、Facebook、Wikipedia 等大型项目提供动力。PHP 的发展历程,不仅是一部技术演进史,更映射了互联网时代的变迁。
248 8
|
3月前
|
NoSQL API PHP
PHP-Casbin:一个让开发者不再为权限控制 “重复造轮子” 的工具
PHP-Casbin 是一个轻量、灵活的开源权限框架,支持 ACL、RBAC、ABAC 等多种模型,帮助 PHP 开发者高效解决权限控制难题。它具备跨框架、跨语言、动态权限、多租户隔离等能力,适用于电商、SaaS、政企系统等复杂场景,让开发者摆脱重复造轮子,提升项目安全与可维护性。
190 0
|
2月前
|
存储 监控 算法
基于 PHP 布隆过滤器的局域网监控管理工具异常行为检测算法研究
布隆过滤器以其高效的空间利用率和毫秒级查询性能,为局域网监控管理工具提供轻量化异常设备检测方案。相比传统数据库,显著降低延迟与资源消耗,适配边缘设备部署需求,提升网络安全实时防护能力。(238字)
157 0
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
Web App开发 监控 JavaScript
一些常用的 Vue 性能分析工具
【10月更文挑战第2天】
985 154
|
缓存 监控 Linux
Linux性能分析利器:全面掌握perf工具
【10月更文挑战第18天】 在Linux系统中,性能分析是确保软件运行效率的关键步骤。`perf`工具,作为Linux内核自带的性能分析工具,为开发者提供了强大的性能监控和分析能力。本文将全面介绍`perf`工具的使用,帮助你成为性能优化的高手。
792 1
|
缓存 监控 Linux
掌握Linux性能分析:深入探索perf工具
【10月更文挑战第26天】
614 1
|
SQL 缓存 关系型数据库
MySQL高级篇——性能分析工具
MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long-query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为 10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。它的主要作用是,帮助我们发现那些执行时间特别长的 SOL 查询,并且有针对性地进行优化,从而提高系统的整体效率。当我们的数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。
MySQL高级篇——性能分析工具
|
敏捷开发 存储 数据可视化
解锁团队高效秘诀:5款顶尖PHP任务管理工具推荐
在现代企业中,高效的任务管理系统已成为不可或缺的工具,特别是在团队协作和项目管理中。PHP任务管理系统因其灵活性、开源性和易用性,备受企业管理者、项目团队和开发人员青睐。本文将介绍什么是PHP任务管理系统,其应用场景,以及推荐5款顶级的PHP任务管理系统,帮助企业提升效率和管理能力。
231 2
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。