热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php性能优化分析工具XDebug大型网站调试工具_PHP

php性能优化分析工具XDebug大型网站调试工具_PHP:一、安装配置1、下载PHP的XDebug扩展,网址:http:xdebug.org2、在Linux下编译安装XDebug
一、安装配置
  1、下载PHP的XDebug扩展,网址:http://xdebug.org/

  2、在Linux下编译安装XDebug

引用
tar -xzf xdebug-2.0.0RC3.gz
cd xdebug-2.0.0RC3
/usr/local/php/bin/phpize
./configure --enable-xdebug
cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/

  注:/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/不同的PHP版本路径不同,也不一定要放在该路径,可以在zend_extension_ts中自行指定xdebug.so所在位置。

引用
vi /usr/local/php/lib/php.ini

  修改php.ini,去除PHP加速模块,增加以下配置信息支持XDebug扩展
代码如下:


[Xdebug]
zend_extension_ts="/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/xdebug.so"
xdebug.profiler_enable=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.profiler_output_name="script" 引用
mkdir -p /tmp/xdebug
chmod 755 /tmp/xdebug
chown www:www /tmp/xdebug
/usr/local/apache/bin/apachectl -k restart


  3、客户端(Windows):WinCacheGrind
  下载地址:http://sourceforge.net/projects/wincachegrind/

  二、分析过程
  1、访问你的网站,将首页上各种链接点击几遍,XDebug在/tmp/xdebug目录生成以下文件:
  usr_local_apache_htdocs_app_checknum_chknum_php_cachegrind.out
  usr_local_apache_htdocs_app_login_showHeaderLogin_php_cachegrind.out
  usr_local_apache_htdocs_app_play_play_php_cachegrind.out
  usr_local_apache_htdocs_app_user_member_php_cachegrind.out
  usr_local_apache_htdocs_tag_tags_php_cachegrind.out
  usr_local_apache_htdocs_top_top_php_cachegrind.out

  2、将以上文件拷贝到Windows上,用客户端软件WinCacheGrind打开每个文件,发现以下PHP程序执行所耗费的时间最长:
  /usr/local/apache/htdocs/tag/tags.php      耗时840ms

  三、分析结果:
  1、/usr/local/apache/htdocs/tag/tags.php


   (2)filter_tags函数引自/usr/local/apache/htdocs/include /misc.php,getForbiddenTags函数被filter_tags函数调用了21次,filter_tags函数耗费的时间中绝大多数 因getForbiddenTags函数所致。getForbiddenTags函数的内容如下:
代码如下:


function getForbiddenTags()
{

$tagsPath=TEMPLATE_FILE_PATH."tags/forbidden_tags.txt";
if(file_exists($tagsPath))
{
$fp = fopen($tagsPath, "r");
$arrcOnf= array ();
if ($fp)
{
while (!feof($fp))
{
$line = fgets($fp, 1024);
$line = trim($line);
$rows = explode("#", $line);
$coumns = explode("=", trim($rows[0]));
if(""!=trim($coumns[0]))
{
$arrconf[trim($coumns[0])] = trim($coumns[1]);
}
}
}
return $arrconf;
}
}

(4)对getForbiddenTags函数进行分析,其中的PHP函数trim被调用了16827次。
  

  (5)可能造成瓶颈的原因:
  要过滤的156个关键字逐行存放在/usr/local/apache/template/tags/forbidden_tags.txt文件中,文本数据库的效率不高。
  逐行读取函数fgets、以及去除字符串两边的空白或者指定的字符的函数trim在高负载下的效率低,可以测试fopen、fread、fscanf之类的文件读取函数,对比一下。

推荐阅读
  • openssh其他版本有漏洞,需要升级,本文以我升级的机器centos6为例一、准备工作1.1检查openssh版本查看系统版本catetcre ... [详细]
  • cp:复制文件和目录语法:cp[OPTION][-T]SOURCEDESTcp[OPTION]SOURCEDIRECTORYcp[OP ... [详细]
  • php如何留登录后门(2023年最新解答)
    导读:今天编程笔记来给各位分享关于php如何留登录后门的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Windows下搭建PHP开发环境相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Prometheus 2.5 + Grafana 5.3 使用官方模板监控
    系统环境:Centos7.2+ Prometheus2.5+Grafana5.3 Grafana安装参考:Grafana安装Prometheus+Grafana 安装参考:Grap ... [详细]
  • R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的RossIhaka和RobertGentleman开发(也因此称为R),现在由R开 ... [详细]
  • Java程序包不存在问题的解决办法
    最近工作中遇到个问题,代码中没有报错,启动时报错,但是程序包不存在,这篇文章主要给大家介绍了关于Java程序包不存在问题的解决办法,需要的朋友可以参考下 ... [详细]
  • parseBeanDefinitionElement方法是在org.springframework.beans.factory.xml.BeanDefinitionParserDe ... [详细]
  • 解决linux机器没有ip的方法第一步:确保你的vmwarelinux右下角,网络连接,已经连接第二步:确保网卡的配置文件- ... [详细]
  • linux里的子系统:linux内核里把某种功能类型的源码划分成一个源码模块,也就是把一类相关的源文件集中起来封装出的功能模块.如内核源码目录下”driversinput”里就 ... [详细]
  • 基于bionic c分析线程的一生
    1.概述和问题进程和线程操作系统基础和重要的机制,从源码角度理解进程和线程的区别对于理解操作系统的基本原理非常有帮助,同时进程和线程的创建又是通过系统 ... [详细]
  • php下载随机api图片_PHP随机风景图片接口源码
    #(滑稽)再也不用bing每日图片了,用大米API自己也能换风景图所有图片格式均为.JPG,支持JSON输出。***2019-12-16*header( ... [详细]
  • BlackBerry 应用程序开发者指南 第一卷:基础第12章 打包和部署
    作者:Confach发表于2006-04-2821:49版权信息:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息.http:www.cnblogs.comconf ... [详细]
  • php初级面试题之简述题(二):PHP初级面试题是刚要找工作的没什么经验的程序员看的,这对我们出去面试提供了不小的帮助,面试官会常常的考到我们,而这时候看的面试题就起了大作用了。1 ... [详细]
  • 安装ha软件一、安装软件最稳定的版本是5.4.0,优先安装稳定版本5.4安装依赖于包base.data,cluster的man包安装失败原因是缺少base.data包安装所有clus ... [详细]
author-avatar
大瑞Y
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有