当前位置: 首页 > 软件库 > 应用工具 > >

phpAnalysis

PHP 应用性能分析器
授权协议 MIT
开发语言 PHP
所属分类 应用工具
软件类型 开源软件
地区 国产
投 递 者 廖夜洛
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发、测试及生产环境部署使用,方便开发及测试工程师诊断性能问题:

  • 通过tideways收集PHP程序单步运行过程中所有的函数调用时间及CPU内存消耗等信息

  • 信息永久存储到MySQL数据库

  • 分析每个请求执行的信息,帮助开发测试人员快速定位性能问题

  • 非侵入式,不需修改项目PHP代码

  • 被动分析器,对性能的影响最小,同时收集足够的信息用于诊断性能问题

能解决什么问题?

当我们发现生产环境的某个接口执行时间特别长时应该怎么做? 直接登录线上机器单步调试? 打大量的log然后分析?

一般我们可以把分析流程拆分为如下几步操作:

  1. 分析开发/测试环境下执行是否会慢

  2. 分析预发/Mirror环境执行是否会慢

  3. 生产环境分析代码执行慢的原因

1,2,3步骤都需要去分析代码,看哪部分执行时间长。如果人工一行代码去排查,需要消耗大量的开发人员的时间并且定位难度很大,于此,phpAnalysis诞生了 :)

准备

  1. 依赖的PHP扩展:tideaways (扩展下载地址), PDO, pdo_mysql, zlib

  2. PHP版本>= 5.4.0

安装phpAnalysis

  1. 下载源代码

cd /home/www
git clone https://github.com/dreamans/phpAnalysis.git
cd phpAnalysis
  1. 修改配置文件

文件位置:/home/www/phpAnalysis/config/database.php
修改数据库链接信息
数据库需要自己创建
建表语句请见install.sql

return [

    'connection' => [

        'host' => '127.0.0.1', // 数据库主机名

        'port' => 3306, // 数据库端口号

        'user' => 'root', // 用户名

        'pass' => 'root', // 密码

        'db' => 'phpAnalysis', // 数据库名

        'tb_prefix' => 'pa_',  // 表前缀
    ],
];
  1. 修改Web Server配置,以Nginx为例

server {
    listen       8000;
    server_name  localhost;
    root  /home/www/phpAnalysis/public;
    index index.html;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
  1. 修改php.ini

; 告诉PHP程序在执行前首先调用此文件
auto_prepend_file = /home/www/phpAnalysis/agent/header.php
[tideways]
extension=tideways.so
;不需要自动加载,在程序中控制就行
tideways.auto_prepend_library=0
;频率设置为100,在程序调用时能改
tideways.sample_rate=100
  1. 重启php-fpm进程

如果安装顺利,此时访问 http://localhost:8000 能看到效果

预览

  • 请求列表

支持按应用实例名称、请求时段、url模糊查询筛选列表 

  • 分词系统简介:PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。 由于PHPAnalysis是无组件的系统,因此速度会比有组件的稍慢,不过在大量分词中,由于边分词边完成词库载入,因此内容越多,反而会觉得速度越快,这是正常现象,PHPAnalysis的词库是用一种类似哈希(Hash)的数据结构进行存储的,因此对于比较

  • phpanalysis/ phpanalysis/demo.php phpanalysis/demo_new.php phpanalysis/dict/ phpanalysis/dict/base_dic_full.dic phpanalysis/dict/base_dic_full.dic.h.dic phpanalysis/dict/base_new.dic phpanalysis/dict/

  • PHPAnalysis是目前广泛使用的中文分词类,使用反向匹配模式分词,因此兼容编码更广泛,现将其变量与常用函数详解如下: 一、比较重要的成员变量 $resultType = 1 生成的分词结果数据类型(1 为全部, 2为 词典词汇及单个中日韩简繁字符及英文, 3 为词典词汇及英文) 这个变量一般用 SetResultType( $rstype ) 这方法进行设置。 $notSplitLen =

  • /* * 居于Unicode编码词典的php分词器 * 1、只适用于php5,必要函数 iconv * 2、本程序是使用RMM逆向匹配算法进行分词的,词库需要特别编译,本类里提供了 MakeDict() 方法 * 3、简单操作流程: SetSource -> StartAnalysis -> Get***Result * 4、对主词典使用特殊格式进行编码, 不需要载入词典到内存操作 * * Cop

  • 在2019年12月下旬,Phpcms官网phpcms.cn关闭后,原有的分词api接口(http://tool.phpcms.cn/api/get_keywords.php)已经失效,在录入标题后再也不能自动提取关键词到关键词的输入栏了,针对这一问题,CMSYOU在之前的分词经验基础上,做了几个分词系统的分析,最后完善整理出来Phpcms v9关键词自动分词组件,今天在这里与大家分享中文分词的那些

  • php自带函数 similar_text 可以计算两个字符串的相似度.这里不做详细说明 这里主要记录使用phpanalysis分词后使用余弦定理定理计算两个字符串相似度 phpanalysis分词使用相对简单 1,下载phpanalysis 链接https://download.csdn.net/download/yu_yi_yu/87473855 2,新建一个计算相似度类方便调用-textSim

  • PHPAnalysis 分词程序使用居于 unicode 的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对 utf-8 编码尤为方便。 由于 PHPAnalysis 是无组件的系统,因此速度会比有组件的稍慢,不过在大量分词中,由于边分词边完成词库载入,因此内容越多,反而会觉得速度越 快,这是正常现象。 PHPAnalysis 的词库是用一种类似哈希(Hash)的数据结构进行存储的,因此对

  • tp5 使用PHPAnalysis提取关键字中文分词 下载地址 https://gitee.com/liuzhuo8081/phpanalysis.git 下载后解压放到extend目录下(以tp5为例,其他目录也行) 定义方法 /** * 关键字提取方法 * @param string $title 进行分词的标题 * @param string $content 进行分词的内容 * @

 相关资料
  • 我正在写一份棘手的申请书。该应用程序运行在64位八核linux机器上 Netty应用程序是一个简单的路由器,它接受请求(传入管道),从请求中读取一些元数据,并将数据转发给远程服务(传出管道)。 此远程服务将向传出管道返回一个或多个响应。Netty应用程序将把响应路由回发起客户端(传入管道) 会有成千上万的客户。将会有成千上万的远程服务。 我正在做一些小规模的测试(十个客户端,十个远程服务),但我没

  • 性能分析 StackExchange.Redis 公开了少量的方法和类型来开启性能分析。由于其异步性和多路复用行为,性能分析是一个有点复杂的话题。 接口 性能分析接口是由这些组成的:IProfiler,ConnectionMultiplexer.RegisterProfiler(IProfiler),ConnectionMultiplexer.BeginProfiling(object), Con

  • 使用perf内核性能分析工具,可以分析出很多问题。具体参考perf命令的用法。 还有oprofile可以分析性能。mpstat查看cpu的使用分布。strace查看系统调用情况。参考:http://blog.csdn.net/win_lin/article/details/9377209

  • SRS支持gprof性能分析。 SRS性能分析 SRS使用gprof分析的步骤如下: 配置:./configure --with-gprof 编译:make 直接启动即可:rm -f gmon.out; ./objs/srs -c conf/console.conf 退出SRS:killall -2 srs # or CTRL+C to stop gprof 生成gprof报告:gprof -b

  • 问题内容: 我有一个Spring应用程序,我认为它存在一些瓶颈,因此我想用一个探查器运行它来衡量哪些功能需要花费多少时间。有什么建议我应该怎么做? 我正在运行STS,该项目是一个maven项目,并且正在运行Spring 3.0.1 问题答案: 我已经使用Spring AOP做到了。 有时,我需要有关在项目中执行某些方法(例如,控制器的方法)花费多少时间的信息。 在servlet xml中,我把 另

  • ObQuote... "One serious obstacle to the adoption of good programming languages is the notion that everything has to be sacrificed for speed. In computer languages as in life, speed kills." — Mike Vani

  • 问题内容: 在* nix上分析C / C ++应用程序的最佳工具是什么? (我希望配置一个服务器,该服务器混合了(阻止)文件IO,用于网络的epoll和fork()/ execv()来进行一些繁重的工作;但是也欢迎一般帮助和更通用的工具。) 您是否可以将RAM,CPU,网络和磁盘的大系统图统统归纳并深入研究? 关于内核之类的东西,在内核列表上有很多话题,但是我还没有在Ubuntu中发现任何东西。

  • 用户期望页面的交互性和流畅。但是在传输到显示器的过程中每个阶段都可能出现闪烁卡顿。 接下来我们将了解用于识别和解决运行时性能降低的常见问题的工具和策略。 TL;DR 不要编写强制浏览器重新计算布局的JavaScript。分离读写函数,并首先执行读取。 不要使您的CSS过于复杂。使用更少的CSS和保持你的CSS选择器简单。尽可能多避免layout。 总是选择不触发layout的CSS。 绘画可能占用