PHP代码优化(重构)[关闭]

Posted

技术标签:

【中文标题】PHP代码优化(重构)[关闭]【英文标题】:PHP code optimization (refactoring) [closed] 【发布时间】:2012-06-27 08:03:04 【问题描述】:

嗯,我知道我可以使用哪种工具进行优化、分析等......所以现在我知道了我所有的瓶颈。但我无法无限优化它们。我的意思是说 ?例如,我将点 A 作为我的主要瓶颈,我应用了优化,之后 CPU 时间、内存时间等变得更小,但与整个项目相关,它仍然是瓶颈。我的意思是,每次在任何项目中都有瓶颈,那么我应该停止优化的最后一点在哪里?

【问题讨论】:

您总是可以让它更快,甚至可以在汇编程序中调整代码。何时停止仅取决于您愿意投入多少时间,这是可用时间、所需性能以及何时“感觉足够好”的函数。 @deceze 非常同意 【参考方案1】:

如果你的代码的某个部分导致了瓶颈,也许最好的办法是退后一步,看看整个画面,我指的是你的整体设计。有时,摆脱无法修复瓶颈的最佳方法是重新考虑您的设计模式。

这里有一些很好的来源

    http://en.wikipedia.org/wiki/Software_design_pattern http://www.phptechi.com/php-design-patterns.html

【讨论】:

感谢您的回答,我仍然认为摆脱瓶颈是不可能的。要点使它们更小(更短)等。我是对的吗? 重点是权衡取舍,正如另一位用户在下面解释的那样,在什么时候出现瓶颈是可以接受的?如果它是用户交互的高度参与部分,它应该顺利快速地进行,如果它是一个显示“加载”的屏幕外,而不是将所有繁重的计算和媒体繁重的交易放在那个阶段。这再次归结为在开始编写代码之前要花更多时间设计您的应用程序。【参考方案2】:

假设您发现了一个“瓶颈”,当您修复它时,可以节省 30% 的时间。 例如时间从 10 秒缩短到 7 秒。

然后假设您找到另一个,当您修复它时,可以节省 30% 的 7 或 2.1 秒。 这将时间缩短到 4.9 秒。

注意几件事。

第二个问题只占原来 10 的 21%,所以原本是一个不太大的问题,但在解决第一个问题后,第二个问题变大了,以百分比表示。

李>

将其视为加速比。解决第一个问题后,您的加速比为 10/7 或 1.43 倍。修复第二个给你一个 7/4.9 或 1.43x 的比率。总加速比为 10/7 乘以 7/4.9,即 10/4.9 或 2.04 倍。您将程序的速度提高了一倍以上。

这两个问题分别占了原始 10 的 30% 和 21%。如果还有两个,分别占 14.7% 和 10.3%,它们在配置文件中看起来会很小。但是如果你修复了所有四个,你的程序速度就会提高四倍!如果您错过其中任何一个,您不会错过。

事情就是这样。在你真正达到最低点之前,你总是可以让程序更快,而那些起初看起来微不足道的问题后来变得有价值。 你得到的最终加速比会让你大吃一惊。

并非所有分析器都能找到所有问题。 如果问题之一是您的探查器找不到的问题, 你会达到一个你认为你已经尽可能优化的地步,但实际上并没有。

如果您想超越这一点,您需要一种能够发现每个问题的分析技术。 Here's how I do it.

【讨论】:

【参考方案3】:

在我看来,这取决于要求。如果用户等待几秒钟加载页面,没关系。但如果用户在聊天时等待几秒钟,则需要优化。当我登录谷歌时,它需要超过 5 秒(它很长),但之后它很快。但如果聊天时需要同样的时间,那么我会更喜欢其他电子邮件 ID。一般来说,mysql、web-services、loops等都需要优化。当有很多图片时,比如在google图片搜索时,需要时间。用户可以等待。转到页面,看看你自己,你在加载页面时的感受。它长吗?如果是那么你需要优化。

【讨论】:

以上是关于PHP代码优化(重构)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

IDEA - 抽取方法参数快速抽取(方法,变量,字段,常量,参数等),重构,优化代码

代码重构之道案例优化

利用Idea重构功能及Java8语法特性——优化深层嵌套代码

代码重构:用工厂+策略模式优化过多的if else代码块

关于烂代码优化重构的几点经验

android内存优化3—从代码角度进行优化