多态性有时比if/elses慢吗?

com*_*lla 2 java polymorphism

特别是在java中.多态重构代码运行速度较慢.是否有可能多态性可能是罪魁祸首,或者可能存在与多态性无关的混杂性能流失.

ska*_*man 8

写一些基准测试代码来完成每个代码,并测量它们的性能.

别的什么都是猜测.


Ale*_*exR 5

从理论上讲,它可能是因为JVM必须在运行代码之前加载类并创建其实例.如果/ else结构不需要加载其他类.但是,我从未见过真正的用例,因为应该通过失去设计质量来改善性能.


Daw*_*uss 5

是的,多态可能比if/else慢.这取决于您的平台(Java)的内部.

但速度不是使用多态的原因.多态性用于使您的解决方案更易于阅读和理解 - 更易于维护.

如果速度是一个重要问题,那么牺牲可维护性而不使用多态性是可以接受的.

编辑:

正如在一些评论和其他答案中指出的那样 - 不要盲目做出决定.首先衡量绩效影响.