首页 > 编程语言 >phptrace 是一个用于跟踪 PHP 应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调试 PHP 应用程序

phptrace 是一个用于跟踪 PHP 应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调试 PHP 应用程序

时间:2023-06-11 21:44:42浏览次数:48  
标签:phptrace 14 性能 09 应用程序 01 2019 PHP 57

phptrace 是一个用于跟踪 PHP 应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调试 PHP 应用程序。以下是一个使用 phptrace 的简单案例:

1. 安装 phptrace

可以通过以下命令安装 phptrace:

sudo apt-get install php7.0-dev
git clone https://github.com/Qihoo360/phptrace.git
cd phptrace
./configure
make && sudo make install

 

2. 使用 phptrace 跟踪 PHP 应用程序

假设有一个简单的 PHP 应用程序,代码如下:

<?php
function fibonacci($n) {
if ($n <= 1) {
return $n;
} else {
return fibonacci($n-1) + fibonacci($n-2);
}
}

echo fibonacci(35);
?>

 

这个应用程序计算斐波那契数列的第 35 项,并输出结果。使用 phptrace 可以跟踪这个应用程序的性能,找到性能瓶颈。

首先,启动应用程序,并记录其进程 ID:

php fib.php &
PID=$!

 

然后,使用 phptrace 跟踪该进程:

sudo phptrace -p $PID -f fibonacci

 

这个命令会输出类似以下的信息:

phptrace -p 12345 -f fibonacci
[2019-09-01 14:57:08.489] [INFO] [phptrace] trace start
[2019-09-01 14:57:08.489] [INFO] [phptrace] trace file: /tmp/phptrace-12345.log
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace function: fibonacci
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace pid: 12345
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace tid: 12345

 

这意味着 phptrace 正在跟踪进程 ID 为 $PID 的进程,并在函数 fibonacci 中进行跟踪。

接着,运行应用程序,等待它完成:

wait $PID

 

最后,使用 phptrace 分析跟踪结果:

sudo phptrace -p $PID -s

 

这个命令会输出类似以下的信息:

phptrace -p 12345 -s
[2019-09-01 14:57:08.489] [INFO] [phptrace] symbol resolve start
[2019-09-01 14:57:08.489] [INFO] [phptrace] symbol resolve end
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace file: /tmp/phptrace-12345.log
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace pid: 12345
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace tid: 12345
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace start time: 2019-09-01 14:57:08
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace end time: 2019-09-01 14:57:23
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace elapsed time: 15.00s
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace function: fibonacci
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace count: 1
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace total time: 14.999ms
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace avg time: 14.999ms
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace max time: 14.999ms
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace min time: 14.999ms
[2019-09-01 14:57:08.490] [INFO] [phptrace] trace call stack:
[2019-09-01 14:57:08.490] [INFO] [phptrace] #0 /home/user/fib.php:2 fibonacci(35)

 

这个输出显示了 phptrace 的分析结果,包括跟踪的函数名、调用次数、总时间、平均时间、最大时间、最小时间和调用栈。这些信息可以帮助开发者快速定位性能瓶颈和调试 PHP 应用程序。

标签:phptrace,14,性能,09,应用程序,01,2019,PHP,57
From: https://www.cnblogs.com/zdcblog/p/17473670.html

相关文章

  • [GPT] php 报错 Unsupported operand types
     Unsupportedoperandtypes这个错误通常发生在使用了不支持的操作数类型时。例如,当您尝试对两个不同类型的值执行算术运算时,就会出现这个错误。例如,如果您尝试将字符串与数字相加,则会出现此错误: $number=10;$string="20";$result=$number+$string;//Unsuppo......
  • JVM 数据存储介绍及性能优化
    JVM内存模式介绍Java虚拟机内存模型是Java程序运行的基础。为了能使Java应用程序正常运行,JVM虚拟机将其内存数据分为程序计数器、虚拟机栈、本地方法栈、Java堆和方法区等部分。程序计数器(ProgramCounterRegister)程序计数器(ProgramCounterRegister)是一块很小内......
  • 通过ngx-lua来统计nginx上的虚拟主机性能数据
    介绍以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页:https://github.com/skyeydemon/ngx-lua-stats功能支持分不同虚拟主机统计,同一个虚拟主机下可以分不同的location统计.可以统计与query-......
  • 一份55页Java性能调优PPT分享
    提起“肖桦”这个人,相信很多小伙伴对他比较陌生。除去现任唯品会资深技术专家头衔外,他更为技术圈所熟知的是他的著名开源项目:SpringSide。SpringSide是以springFramework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中主流技术选型,最佳实践的总结与演示。到目前为......
  • SQL Server 2008性能监视和优化工具
    MicrosoftSQLServer提供了一套综合的工具,用于监视SQLServer中的事件和优化物理数据库的设计。工具的选择取决于要执行的监视或优化类型和要监视的具体事件。以下是SQLServer监视和优化工具:工具 说明 sp_trace_setfilter(Transact-SQL) SQLServerProfiler用于跟......
  • 基于php的外卖订餐网站(php+mysql)
    介绍一个基于php的外卖订餐网站,包括前端和后台。效果演示http://101.43.124.118:8001/admin源码地址https://github.com/geeeeeeeek/dingfanzu代码说明htaccessRewrite配置文件,需要放入到项目根目录configs.php需要配置数据库连接信息(主机、用户名、密码),系统常量,debug......
  • 现代图片性能优化及体验优化指南
    之前,整个《现代图片性能优化及体验优化指南》分了5篇来发,本文是系列合集,方便大家收藏及连贯阅读。图片资源,在我们的业务中可谓是占据了非常大头的一环,尤其是其对带宽的消耗是十分巨大的。对图片的性能优化及体验优化在今天就显得尤为重要。本文,就将从各个方面阐述,在各种新特性满......
  • ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大
    ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大背景周末在公司无偿加班.同组的小伙伴周一有一个需求,我想着周六乘着机器压力不大进行一下虚拟机的clone但是截止到晚上快十点都没有完全Clone完.我感觉非常不对.然后突然想是不是硬件的bug导致性能有差异.想着最近总是在......
  • 45 最佳实践-性能最佳实践-kworker隔离绑定
    45最佳实践-性能最佳实践-kworker隔离绑定45.1概述kworker是Linux内核实现的per-CPU线程,用来执行系统中的workqueue请求。kworker线程会和vCPU线程争抢物理核资源,导致虚拟化业务性能抖动。为了使虚拟机能够稳定的运行,减少kworker线程对虚拟机的干扰,可以将主机上的kworker线程绑......
  • WinCacheGrind网站性能测试工具
    WinCacheGrind是一个Windows平台下的PHPXdebug分析工具,可以帮助开发人员分析PHP应用程序的性能问题。它基于KCacheGrind,使用类似于KCacheGrind的界面,但是可以在Windows操作系统下运行。WinCacheGrind的主要功能包括:1.显示函数调用图:WinCacheGrind可以显示PHP......