Java'Prototype'模式 - 新vs克隆vs class.newInstance

Gui*_*ume 9 java performance prototype

在我的项目中,有一些'Prototype'工厂通过克隆最终的私有实例来创建实例.

这些工厂的作者说,这种模式提供的性能比调用"新"运算符更好.

使用谷歌获取一些线索,我没有找到任何相关的.这是一个来自未知项目javdoc中的小摘录

可悲的是,clone()比调用new要慢.然而,它比调用java.lang.Class.newInstance()快得多,并且比滚动我们自己的"克隆"方法快一些.

对我来说,它看起来像java 1.1时代的旧的最佳实践.有人知道更多吗?这是一个很好的做法,用'现代'的jvm?

Mar*_*ouf 22

当然,这种做法完全过时了.从那时起,Java虚拟机得到了极大的改进.对象创建非常便宜.另一个相关的实践,对象池,也是过时的,因为对象创建和清理的成本现在更加高效.对于某些情况,它可能是有用的(Jon Skeet在这里给出了一些很好的例子),但它绝不应该是这样的基础框架库的一部分.

我建议找一些新的库和/或一个新的项目来工作;-)

查看此类文章Java Urban Performance Legends以获得更多信息.