[文章作者:张宴 本文版本:v1.0 最后修改:2007.06.28 转载请注明出处:http://blog.zyan.cc]

  经济学中有一条著名的80-20定律,引用到编程中,就是:80%的性能瓶颈是由20%的代码引起的。借助PHP的XDebug扩展,可以有效地找出这20%的代码。

  一、安装配置
  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扩展

引用
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

  点击在新窗口中浏览此图片

  (1)耗时最长的filter_tags函数出现在/usr/local/apache/htdocs/tag/tags.php的第158行:
  $tags .= filter_tags($videos[$i]['tags'])." ";

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

  (4)对getForbiddenTags函数进行分析,其中的PHP函数trim被调用了16827次。
  点击在新窗口中浏览此图片

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


Tags: ,
技术大类 » PHP/JS/Shell | 评论(132) | 引用(0) | 阅读(77633)
AVIS Email
2015-11-17 01:19
I am still learning from you, but I am trying to achieve my goals. I certainly enjoy reading all that is posted on your blog. Keeps the information coming. I loved it
Buy Percocet Online
AVIS Email
2015-11-17 02:02
My partner and I stumbled over here from a different web page and thought I might check things out. I like what I see so now i am following you. Look forward to going over your web page repeatedly.
Buy Xanax Online
AVIS Email
2015-11-17 02:14
Thanks for posting this. i really enjoyed reading this.
Buy Vicodin ES Online
AVIS Email
2015-11-17 02:25
This is good site to spent time; I just stumbled upon your informative blog and wanted to say that I have really enjoyed reading your very well written blog posts. I will be your frequent visitor, thats for sure.
Buy K25 Online
AVIS Email
2015-11-17 02:36
Great Information, very interesting and useful for me. Thanks
Buy Lortab Online
AVIS Email
2015-11-17 02:47
I am so happy to read this. This is the kind of manual that needs to be given and not the random misinformation thats at the other blogs. Thanks for sharing this.
Buy Ritalin Online
AVIS Email
2015-11-17 02:56
My partner and I stumbled over here from a different web page and thought I might check things out. I like what I see so now i am following you. Look forward to going over your web page repeatedly.
Buy Valium Roche Online
AVIS Email
2015-11-17 03:10
Thanks for providing such useful information. I really appreciate your professional approach.
Buy Codeine Online
AVIS Email
2015-11-17 03:19
This is really good information. Must agree that you are one of the coolest blogger I ever saw.
Buy Adderall Online
AVIS Email
2015-11-17 03:29
Hats off to you The information that you have provided is very helpful.
Buy Hydrocodone Online
AVIS Email
2015-11-17 03:47
I am very happy to get this post and comment here.
Buy Phentermine Online
Ken Mark Homepage
2016-1-6 01:23
Thanks for providing such useful information. I really appreciate your professional approach.
Buy Medicine Online
Ken Mark Email Homepage
2016-1-6 03:15
I got here much interesting stuff. The post is great Thanks for sharing it
Medicine Online
Ken Mark Homepage
2016-1-6 05:27
This is good site to spent time; I just stumbled upon your informative blog and wanted to say that I have really enjoyed reading your very well written blog posts. I will be your frequent visitor, thats for sure.
Drug Medicine
Abeewa
2016-3-23 01:24
Thanks for providing such useful information. I really appreciate your professional approach.
Buy Medicine Online
Abeewa
2016-3-23 23:09
Awesome post, thanks so much for sharing this with us
Buy Medicine Online
Grey Homepage
2016-8-19 23:10
All qualities are best in your site data.
Buy Ritalin
Blake Homepage
2016-8-19 23:17
An extremely motivating story… awesome thanks to you and to every one of the general population who developed this site. Continue going and good fortune.
Xanax Pills
Blake Homepage
2016-8-19 23:40
I am glad when I read your online journal with great data! I hope a lot and trust that you will post more site that are identified with this site.
Xanax 2mg
Blake Homepage
2016-8-19 23:46
An extremely motivating story… awesome thanks to you and to every one of the general population who developed this site. Continue going and good fortune.
Xanax 2mg
分页: 5/7 第一页 上页 1 2 3 4 5 6 7 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]