我的观点是,由于堆大小的数量有限,JVM是否需要更频繁地运行垃圾收集?并且几乎,它是性能杀手吗?
答案 0 :(得分:0)
要使用的最佳内存量可能是运行程序的最小堆的2-5倍。运行GC的频率与GC后的可用内存量成反比。
实际上,它是性能杀手吗?
这取决于你的申请,但我认为是。
鉴于RAM与您的时间成本相比相对便宜,我倾向于确保我有足够的RAM。您可以以低于80美元的价格购买16 GB。
答案 1 :(得分:0)
这种类型取决于用于gc的算法和您正在使用的jdk。正常的gc是一个杀手,因为它停止执行其他线程。如果您使用的是jdk 1.6或更高版本,则可以使用例如VisualVM的。 有不同的gc算法来克服这个问题。在这里,我会将您发送给文档,因为他们的差异最佳
答案 2 :(得分:0)
在应用程序的内存要求与您提供的内存分配(使用Xmx)之间找到适当的平衡是一项关键的性能调优活动。
是的,你想让堆足够大,以便JVM不会在常量GC上晃动,这绝对是性能杀手。
您需要的堆大小完全取决于应用程序。