【发布时间】:2009-02-19 17:50:43
【问题描述】:
我正在开发用 php/mysql 编写的网站。当我第一次写它时,它是意大利面条,在 html 中嵌入了很多 php 之类的东西——很难维护。
我用 OOPS 用一个很好的模块化结构重写了整个东西,现在它更容易维护和扩展。
但在使用 webwait 和 siege 测试网站性能时,更新、结构更好的版本似乎比意大利面条代码版本运行和加载更慢。
加载时间相差近 1 秒 - 2.39 秒与 3.81 秒
除了 php 代码之外没有其他任何更改 - 不是 js,不是 css
那么这里的问题是什么?我应该恢复到旧代码吗?其他人也遇到过这种情况吗?
编辑:
- 我已经使用
cachegrind,包括在内,我认为
代码很不错。
- 我也
知道问题不完全
哎呀,但更大的结构等。
而且OOP根本没有
保证更好的性能。
- 我也多次运行代码。
- 我使用过 cachegrind
kcachegrind,包括,围攻(大部分
Rasmus lerdorf 中概述的工具
他在 2008 年的 drupalcon 上的演讲'Simple
is Hard')
我想知道的是其他人如何处理这个问题。
【问题讨论】:
-
老系统的加载时间已经显得太大了。也许数据库没有正确索引。使用分析器找出原因并让页面在几十毫秒内加载。
-
检查它是否只是看起来像 OO 的过程代码。我已经看到这种情况发生了,而且最常见的是它糟糕的 OO 会杀死
-
PHP 的 OOP 性能并不好,尤其是当您将其与 .NET 或 Java 进行比较时。幸运的是 PHP 5.3 或更高版本,6.0 将提供一些速度改进,但不是灵丹妙药。