繁体   English   中英

PHP抽象类vs接口(性能)

[英]PHP abstract class vs interface (performance)

在PHP 5和更高版本中, interfaceabstract class的速度更快?

abstract class MyPluginModel {

interface MyPluginModel {

有什么想法在内存和时间性能方面进行比较吗?

仅基于性能来比较这两者是没有意义的,因为它们不是同一件事(“接口与抽象类”问题已在此站点上发布多次,请参见此处此处 ,例如,因此我将不重申该论点)。

也就是说,由于要做的事情更少(例如,没有必要将实例属性从超类复制到子类),所以接口很可能会更快。 但是,在现实世界中,这种差异几乎不可能被注意到(甚至比在生产中应该使用的操作码缓存的情况要小得多)。

有关更多信息,请比较: zend_do_implement_interfacezend_do_inheritance

至于内存,应该没有太大的区别,接口和抽象类都使用相同的数据结构

唐纳德·克努斯(Donald Knuth)的名言:“我们应该忘记效率低下,大约97%的时间:过早的优化是万恶之源”。

我真的认为您在考虑时就在进行过早的优化。

从性能的角度来看,接口和抽象类是不可比的。 确实不能说抽象或接口类型将保留多少内存,因为它们都只保留对继承层次结构继承的任何具体对象的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM