当前位置:  开发笔记 > 编程语言 > 正文

PHP性能

如何解决《PHP性能》经验,为你挑选了4个好方法。

如果不在我的服务器上安装软件,我该怎么做才能提高PHP脚本的性能/速度?



1> Frank Kruege..:

轮廓.轮廓.轮廓.我不确定PHP是否有任何内容,但编写一个小工具在代码中插入分析信息应该很简单.您需要分析函数时间和SQL查询时间.

所以你有一个功能:

function foo($stuff) {
    ...
    return ...;
}

我会把它改成:

function foo($stuff) {
    trace_push_fn('foo');
    ...
    trace_pop_fn('foo');
    return ...;
}

(这是函数中多次返回成为障碍的情况之一.)

和SQL:

function bar($stuff) {
    trace_push_fn('bar');

    $query = ...;
    trace_push_sql($query);
    mysql_query($query);
    trace_pop_sql($query);

    trace_pop_fn('bar');
    return ...;
}

最后,您可以生成程序执行的完整跟踪,并使用各种技术来识别您的瓶颈.



2> Adam Wright..:

一种可以轻易上架的合理技术是缓存.大量的时间往往会为请求之间(甚至跨客户端)的客户端生成资源; 消除此运行时工作可能会导致速度急剧增加.您可以将生成的资源(或资源片段)转储到Web树外部的文件中,然后在需要时将其读回.显然,需要进行一些分析以确保实际上比再生更快 - 强制Web服务器定期返回磁盘可能是有害的,因此资源确实需要重复使用.

您可能也会惊讶于在编写错误的数据库查询中花了多少时间; 时间常见的生成查询,看看是否可以重写.除非您使用某些次优算法,否则执行实际PHP代码所花费的时间通常非常有限.

这些都不限于PHP,尽管一些PHP"magicy"方法/功能可以过度保护人们不会考虑这些问题.例如,我最近更新了一个脚本,该脚本使用array_search在排序数组上使用二进制搜索,并获得了预期的指数加速.



3> Willem..:

真正考虑使用XDebug的探查:它有助于检查多少正在对你会预期的执行一定的功能.

我尝试通过在适当时用数组查找替换逻辑来减少指令,同时提高代码可读性.杰夫阿特伍德在[最佳代码根本没有代码]中写道[1].

另外,避免在另一个循环内部循环,并嵌套if/else语句.

功能短.有时,当结果值已知时,不需要执行大量代码.

不必要的测试:

if(count($ array)=== 0)return;

也可以写成:

if(!$ array)返回;

另一个功能呼叫消除了!

[1]:http://www.codinghorror.com/blog/archives/000878.html "最好的代码是根本不会产生代码"



4> Dinesh Saini..:

您可以使用两个基本内容优化代码:

优化PHP相关的库和服务器

浏览https://www.digitalocean.com/community/articles/how-to-optimize-apache-web-server-performance或

您可以使用像xhprof这样的分析工具来查看代码的哪些部分可以通过优化来实现,这里是以下链接:http://michaelsanford.com/compiling-xhprof-for-php-5-4/

使用代码分析器和代码分析器优化代码

您需要安装Netbeans才能使用此插件.以下是您需要遵循的步骤:

1)打开NetBeans,然后从菜单栏工具>插件中选择选项.然后在可用的插件选项卡中搜索插件名称"phpcsmd"并从那里安装它.

2)现在打开终端并输入命令"sudo su"作为超级用户.

3)通过在终端中运行以下命令,将PEAR库(如果未安装)安装到系统中

a) wget http://pear.php.net/go-pear.phar
b) php go-pear.phar

因为我们需要这个来安装更多插件.

4)然后运行命令

"pear config-set auto_discover 1"

这将用于设置自动发现所需插件的路径"true".因此,他们可以自动安装到所需的位置.

5)然后运行以下命令安装PHP代码嗅探器.

"pear install --alldeps pear/PHP_CodeSniffer"

6)现在通过运行以下命令来安装PHP Mess Detector

"pear install --alldeps phpmd/PHP_PMD"

如果在安装此模块时收到"无效的包名/包文件"phpmd/PHP_PMD""之类的错误.您需要使用此"pear channel-discover pear.phpmd.org"命令来消除此错误.在此命令之后,您可以再次运行上述命令以安装Mess检测器.

7)现在通过运行以下命令来安装PHP Depend

"pear install --alldeps pdepend/PHP_Depend"

8)现在通过运行以下命令安装PHP Copy Paste Detector

"pear install --alldeps phpunit/phpcpd"

9)然后运行命令

"pear config-set auto_discover 0"

这将用于设置自动发现路径"false".

10)然后打开net beans并按照工具>选项> PHP> PHPCSMD的路径

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有