在解释型编程语言(如PHP和JavaScript)中,采用面向对象方法而不是程序方法会产生什么影响?

具体而言,我正在寻找的是在创建Web应用程序和在过程和面向对象方法之间进行选择时要考虑的事项清单,以便不仅优化速度,还要优化可维护性。 如果你知道任何进一步探讨这一问题的文章,那么引用的研究和测试用例也会有所帮助。

结论:在解释性语言中使用OO与Procedural进行比较时,性能是否真的有多大(如果有的话)?

===============>>#1 票数:17 已采纳

也许我很疯狂但是在使用解释性语言这样的情况下担心速度就像试图弄清楚用什么颜色来画棚子。 让我们甚至不认为这种优化完全是成熟的。

当你说“可维护性”时,你会在头上钉上钉子。 我会选择最有效率和最易维护的方法。 如果您以后需要速度,则不会在解释语言中切换过程与面向对象的编码范例。

===============>>#2 票数:10

不幸的是,我也完成了我的测试。 我做了测试速度,它大致相同,但是当测试内存使用情况在PHP中获取memory_get_usage()时,我在OOP端看到了一个非常大的数字。

OOP为116,576字节,程序为18,856字节。 我知道“硬件便宜”,但加油! 使用量增加1,000%? 对不起,这不是最佳选择。 有这么多用户同时访问您的网站,我确信您的RAM只会燃烧或耗尽。 我错了吗?

===============>>#3 票数:4

底线:不,因为解释的开销超过了方法调度的开销。

===============>>#4 票数:2

根据我的经验,使用OOP代码而非程序性的情况下,负载较重的站点将陷入困境并且变得无响应。 原因很容易理解。

OOP需要更多的内存分配(MALLOC),并且在内存中运行的操作比程序代码要多得多。 它需要更多的CPU时间来执行其任务。 它本质上是“开销”,包含在程序代码中,增加了执行它的CPU负担,特别是在执行数据库操作时。

许多程序员喜欢OOP的便利性,在简单的界面后面隐藏着很少的黑盒子。 但是,我已经很好地恢复了在重度用户负载下永远响应的网站。 剥离OOP并用简单的程序功能替换它会产生巨大的差异。

如果您不希望您的网站非常繁忙,请务必使用OOP。 如果要构建高流量系统,则需要从处理中删除每个CPU周期,并从输出中删除每个字节。

===============>>#5 票数:1

您的表现将以实施为特征,而不是语言。 您可以使用最慢的语言,只要您按比例设计它就可以扩展为世界上最大的网站。

请记住优化的第一条规则。

别。

:)

===============>>#6 票数:1

如果您使用的是解释性语言,则差异无关紧要。 如果性能有问题,则不应使用解释性语言。 两者的表现大致相同。

===============>>#7 票数:0

我实际上在我维护的网站上进行了一个像python一样的小测试,发现它们的速度几乎相同,程序方法赢得了万分之一秒,但是OO代码非常显着我没有比一次迭代更长时间地继续锻炼。

所以真的,无所谓(根据我的经验)。

  ask by cmcculloh translate from so

未解决问题?本站智能推荐: