有哪些简单的优化提示?

时间:2013-11-27 21:31:19

标签: php performance

我的意思是,做的事情:

$length=count($someArray);
for($i=0; $i<$length; $i++){
    //Stuff
}

而不是:

for($i=0; $i<count($someArray); $i++){
    //Stuff
}

这样每次循环时都不必计算数组的长度。

有没有其他人有这样的提示,这些提示是非常简单的概念,但可以提高性能?

3 个答案:

答案 0 :(得分:3)

考虑一下这里:

http://tipsandtricks.runicsoft.com/General/Performance.html

我认为帽子几乎涵盖了所有通用改进技巧。

在此之后,请特别注意第5点:了解您的语言,可以通过语言相关的方式实现许多优化。

答案 1 :(得分:2)

我能想到的最佳提示

不要

至少在您了解程序的实际性能特征之前不会这样做!

问题是,无论如何,99%的编译器都会为您进行优化。即使他们没有,在大多数情况下,单独使用该示例的性能增益在大多数平台上都将完全不明显。

编写代码,使用最多/表达正在进行的操作并首先使用好的算法。当且仅当您遇到性能问题时,您应该回过头来调查原因。

答案 2 :(得分:0)

三件简单的事情: 1.)少做,少做 2.)分配更少的内存,减少内存 3.)认真思考您的算法和数据库请求和布局

到1.)就像你在这里做的那样,不经常调用计数,这也可以大规模地完成。就像,为什么如果用户不能滚动,一次只能显示15行,为什么要从数据库中请求超过20行。

到2。)

// Allocate here what you will need, eventually reusing, reinitializing it
for($i=0; $i<count($someArray); $i++){
    // Only allocate here what can not be avoided by reusing
}

到3.) 有慢速和快速的算法,如果你在循环中处理某些事情,请确保你理解其含义。对于数据库,请确保您具有满足特定需求的正确结构(即关系)

但职业发展有一条主要规则:

过早优化是万恶之源 - DonaldKnuth

是的,编程干净并且预先避免最糟糕的性能问题是好的。但排名第一的是可以理解,可读性和可维护性。并且“你不需要它”原则。如果您的代码可读且结构良好,并且没有延迟,那么用户或服务器管理员或分析器工具的任何投诉都不会显示出奇怪的事情。不要“优化”。如果没有剖析和一个已知的原因,你永远不知道你是否真的在修复瓶颈或在错误的地方浪费时间和金钱。在最糟糕的情况下,搞乱完全可以理解的代码。

以下是关于该主题http://c2.com/cgi/wiki?PrematureOptimization

的精彩讨论