加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 比构造函数更快?

发布时间:2020-12-15 02:31:56 所属栏目:Java 来源:网络整理
导读:我正在调整一些需要在匆忙中构建几千个对象的 Java代码.我看过一些显而易见的事情,比如确保对象相当简单,构造函数是精简和平均的.而且我也在考虑没有一些对象等的选择. 我可以看一下具体的事情,使构造函数本身花费更少的时间吗?是否有另一种方法可以在不调
我正在调整一些需要在匆忙中构建几千个对象的 Java代码.我看过一些显而易见的事情,比如确保对象相当简单,构造函数是精简和平均的.而且我也在考虑没有一些对象等的选择.

我可以看一下具体的事情,使构造函数本身花费更少的时间吗?是否有另一种方法可以在不调用构造函数的情况下获得正确数量的对象,可能使用clone()或其他运行时API代替?或者是否有提示我可以给VM或编译器,以帮助简化程序的这一部分?

解决方法

最好的方法是尽可能避免创建对象.对象创建不仅会产生成本,而且垃圾收集器之后也会对其进行清理.

一些想法是:尝试将数据压缩为原始类型,用简单类型的预分配并行数组替换简单的类似结构的对象,使对象可变,重置它们并在不再需要它们时重新使用它们(使用pooling或ad-hoc),使用Javolution将类似结构的数据放入预先分配的ByteBuffers /数组中.如果必须创建新对象,请避免使用Java集合 – 它们会产生大量开销(包括内存使用和对象分配),请尝试使用数组或Trove.

也许您也可以简化逻辑,这样您就不需要这么多对象.

在任何情况下,运行分析,以便您知道您正在优化哪个真正是您的瓶颈.通常情况下,表演热点与直觉所说的不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读