将所有代码更改为面向对象会使内存使用更大还是更小?

nop*_*ole 2 php oop

有一个用PHP编写的项目,只是简单的所有程序......一步一步地调用DB函数,处理和打印输出.然后它被改为完全面向对象 - App对象有一个单例,并且通过App对象调用各种函数.

有人声称服务器上的内存使用量或占用空间会减少.会是这样的吗?我认为程序通常只使用极小的,而面向对象的编程与各种设计模式通常会实例化比需要更多的东西,或者简单地有对象,而程序通常只有极小的.

那么将所有代码更改为面向对象实际上会使服务器上的内存使用量变小吗?

Mar*_*las 9

它可能会更多,但真的没有办法说出来.如果您的代码通过OOP方式实际改进,那么它可能会更少.在使用的存储器和面向对象的存在之间没有直接的相关性.也许一般来说,面向对象会占用更多内存,但只有在两组代码编写得同样好的情况下,并且几乎不会出现这种情况.

是否有理由将此应用程序升级为面向对象?你知道它不是一个或另一个,你可以混合和匹配件...... OOP不是银弹.


小智 6

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

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

基本上,我从我所有的OOP粉丝那里听到的是......你将使用更多的资源,它将与编写良好的程序函数调用一样快,但对于大型项目和多开发人员环境来说会更好.需要找到平衡点.

更多开发者(邋dev的开发者)和更大的网站

Con:用于您的应用的更多RAM.

Pro:在整个应用程序中很容易维护代码.

一个简单的网站开发

Con:如果您的网站增长,或者开始包含许多开发人员,那么如果您的程序代码很糟糕,开发可能会慢一些.

Pro:低RAM,速度稍快.如果您的代码编写得正确(只有优秀的开发人员可以这样做 - 哈哈),您的代码将同样易于维护.

在RAM战争中,程序获胜.在可维护性战争中,良好的代码获胜.;)

OOP粉丝说OOP更清洁.我已经看到了一些非常混乱的OOP代码,然后我看到了一些真正干净的过程代码,由开发人员编写,可以编写任何语言或风格的优秀代码.能够与之合作的代码.最重要的是,如果你有邋developer的开发人员,你使用哪种风格并不重要,你会有邋code的代码.

由于我自己的个人基准测试,我选择了内存耗费OOP,主要是因为我写的是非常干净的程序,而且我通常是我任何项目的唯一开发人员.

干杯!