【发布时间】:2012-09-24 04:13:52
【问题描述】:
我曾参与过一些以实现更好的性能和减少内存消耗为主要目标的项目。但是相信我,Java 中的内存消耗已经很难控制了。
这个wiki page,上面写着“Java 程序速度” 在某些情况下,Java 在低级和数字基准测试中与 C++ 相同。
These statistics 并没有真正显示出时间计算性能基准的主要差异。 但是,Java 中的内存使用量比 C++ 高得多,因为在 Java(32 位;在 64 位 java 中是两倍)中,每个对象有 8 字节开销,每个数组有 12 字节开销,如以上维基链接。
现在的问题是人们采取了哪些措施来最大限度地减少 Java 中的内存利用率?
请注意,我更关心内存而不是性能,因为我想不出比“编写更好的程序”和“在 JDK 中正确调整内存”更好的方法
【问题讨论】:
-
在 java 中不能像在 c++ 中那样优化内存占用。如果内存是主要限制,那么您需要 java 有什么原因吗?
-
Java 在一个非双精度的 64 位程序中为一个对象的头部多使用了 4 个字节。 Java 通常在 64 位 JVM 中使用 32 位引用,最多 32 GB,而 C/C++ 64 位程序通常使用 64 位指针。
-
+Anshu Java哲学真的不在乎使用多少RAM,Java的重点是可扩展性,性能和标准化,如果你想要具有Java最大优势但轻量级的东西,请考虑采取看看 GOLANG,它是 Java 和 C++ 之间的中间部分
-
如果配置正确,JVM 可以垂直扩展以优化当前负载的内存使用。选择的垃圾收集器是主要的基础砖之一,它的设置会影响整个项目。使用 G1 GC 并避免“激进堆”方法。更多细节在文章“使用正确的垃圾收集器最小化 Java 内存使用”javacodegeeks.com/2017/11/…
标签: java performance memory