【发布时间】:2015-04-21 08:41:37
【问题描述】:
Java 程序可能非常消耗内存。例如,Double 对象有 24 个字节:8 个字节的数据和 16 个字节的 JVM 强加开销。通常,表示原始类型的对象非常昂贵。
Java 标准库中的任何集合都会发生同样的情况。甚至还有一些违反直觉的事实,例如 HashSet 比 HashMap 更需要内存,因为 HashSet 内部包含 HashMap (http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html)。
在对高性能设置中的数据建模和对象委托时,您能否提出一些建议,以减轻 Java 的这些“弱点”?
【问题讨论】:
-
绝对字节数并不总是转化为实际的性能问题;它不一定会严重增加 CPU 时间,只会消耗内存。
-
This advice 也适用于您的问题。
-
@apangin,这正是我正在寻找的建议。非常感谢!
-
每个人都应该阅读 Jon Louis Bentley 1982 年的经典著作《编写高效程序》。 (绝版但找到副本。)An online summary.
标签: java performance memory-leaks