加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – OOPS,还有性能吗?

发布时间:2020-12-13 22:20:21 所属栏目:PHP教程 来源:网络整理
导读:我正在使用php / mysql编写的网站上工作.当我第一次写它的时候,意大利面很多嵌入了html之类的php – 很难维护. 我用OOPS重写了一个很好的模块化结构,现在它更容易维护和扩展. 但是当使用webwait和siege测试网站性能时,较新的,结构更好的版本似乎比意大利面条
我正在使用php / mysql编写的网站上工作.当我第一次写它的时候,意大利面很多嵌入了html之类的php – 很难维护.

我用OOPS重写了一个很好的模块化结构,现在它更容易维护和扩展.

但是当使用webwait和siege测试网站性能时,较新的,结构更好的版本似乎比意大利面条代码版本运行和加载更慢.

装载时间差异接近1秒 – 2.39秒vs 3.81秒

除了PHP代码之外没有其他任何改变 – 不是js,而不是css

那么这里的问题是什么?我应该恢复旧代码吗?这是否发生在其他人身上?

编辑:

>我使用了一些分析
cachegrind,包括和我认为
代码非常好.
>我也是
知道问题并不完全
OOPS但更大的结构等
并且OOP根本没有
保证更好的性能.
>我也多次运行代码.

>我用过cachegrind
kcachegrind,包括,围攻(大部分
Rasmus lerdorf概述的工具
他的drupalcon 2008讲话于‘Simple
is Hard’)

我想知道的是其他人如何处理这个问题.

解决方法

我可以考虑几点要考虑:

>这不是OOP与意大利面条代码的选择.还有其他范例可能与OOP一样可维护和结构化,但具有不同的性能特征.可以使用简单的过程语言功能编写OOP代码(许多大型C框架使用非常OOP-ey样式.)在某些情况下,更实用的样式也可能更简单. OOP不是一个真实的范例.
>有不同程度的OOP.将数据建模为对象并不会在大多数语言中产生明显的性能差异(我不知道PHP在这方面的表现如何,但是使用PHP我总是期望最差).但是,虚函数,继承(尤其是多继承)较慢,并且增加了通常可以避免的开销.您使用哪些OOP功能?是否有更简单的OOP设计可以完成这项工作,但对“慢”语言功能的依赖程度较低?

最重要的是,通常显然适用(你可以优化算法,启用缓存或预编译等等 – 但是虽然这些可能会有很大帮助,但它们并不特定于OOP)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读