PHP这门脚本语言虽然强悍火热,但是和所有技术一样,还是会碰到一些小毛病。如何迅速找出这些问题?这里教你几招简单易学的妙计来给PHP的运行提速。
使用Xdebug获取性能数据
Xdebug就是那个能帮你查到PHP代码跑得咋样的神器!想用它的话,就按下面几步来吧:
首先,得看看你的PHP环境有木有装Xdebug?要是没的话,赶紧用你经常用的那啥包管理器搞定!就拿Ubuntu来说,就是个简单的`sudoapt-getinstallphp-xdebug`命令。装好之后,记得给php.ini里添点东西,像是`xdebug.profiler_enable=1`,这样Xdebug就能开始收集性能数据~
装好Xdebug后,以后每次你跑PHP脚本,它都会自动帮你在‘/tmp’里搞出一个Cachegrind文件~这个文件里面可是记录了脚本的耗时、函数调用次数等重要信息!有了这些数据,你就能轻松找到脚本里的慢点,比如说哪个函数用时最长。
分析Cachegrind输出
CacheGrind的报表看着挺头疼?别急,这类问题有专门的小助手帮你解读!比如说,现在大家都在用的KCacheGrind就是个好帮手,这个界面简洁明了,解析CacheGrind数据就像看图说话那么简单。
用KCacheGrind这货儿,你能清楚地看出每个函数被叫了多少回,平均花了多久,总共花了多长时间。这些东西对找程序里慢得像蜗牛的地方特管用。比如说,要是哪个函数被呼唤了好几万次,每次还磨蹭好久,那多半就是需要好好整整的地方。
使用Blackfire查看请求跟踪
黑火是另一款牛逼的工具,能帮我们深度剖析PHP程序的性能问题。跟Xdebug不太一样,黑火提供了个现代化、易懂的界面去看那些性能数据。
装好调试神器Blackfire,用浏览器插件或者命令行工具就能马上开始性能分析。它能生成超详细的报表,告诉你每个请求经过了哪些环节,每个函数调用的具体情况,比如花了多少时间,占了多少内存等等。
查看这些报告,就能轻松看出哪些代码慢,哪些请求用时长。这样既能帮你提升每个请求速度,又能整体提高应用性能。
检查数据库查询
pecl install xdebug
PHP程序里,查询是影响性能的大问题。速度慢得让人受不了!所以,找出来修好这些查询就是提速的关键了。
用MySQLWorkbench或phpMyAdmin这类工具就能搞定SQL查询分析!它们会告诉你每条查询怎么运行,有什么问题一目了然。
比如说,你看到某个查询得在整个表里找数据,没用到索引,那这查起来肯定慢。只要动动手,给它加个合适的索引,或者换种方法查,就能让它跑得飞快!
分析内存使用情况
PHP运行得好不好,跟内存也有关系。如果内存占用太多,容易出现内存不够用的情况,这样就会拖慢应用程序的速度,甚至让它崩溃。
PHP有两个小工具,叫作`memory_get_usage()`和`memory_get_peak_usage()`,它们能帮你看看脚本用了多少内存。这样你就能知道脚本运行时哪个阶段最耗内存,找到可能的内存泄露或浪费问题。
再比如,你也能用类似Blackfire这种工具,详细研究下内存占用。它能让你了解各个功能占用多少内存,甚至帮你找出内存泄露的地方!
zend_extension=xdebug.so xdebug.profiler_enable=On xdebug.profiler_output_dir="/tmp" xdebug.profiler_output_name=cachegrind.out.%t.%s
优化代码结构
有的时候,性能变差其实就是因为你的代码写得不好。像那种重复的代码、不必要的循环,甚至是层层嵌套的结构,都会让系统运行慢下来!
改一改代码,让它跑得更快!掏空那些老套重复的代码,整理出一堆函数来,还有那些无聊的循环,统统精简掉。还有那些复杂的嵌套结构,也给它简单化点。另外,找些更高效的算法和数据结构,效率也能跟着提上来喔。
定期性能测试
记得时不时测一下性能,这对保证软件正常运转很重要!借助ApacheJMeter或LoadRunner这样的小帮手,就能模拟出多个使用者同时使用的情景,看软件在大负荷下能不能扛得住。
做些性能测试,能帮你找到平常看不见的毛病,像是服务器反应太慢啊、资源冲突之类的。定期来这么一次,按测出来的情况好好修整一下,让你的程序总是发挥出最好的效果。
评论0