在64位Windows平台上,我可以安全使用的最大Java堆大小是多少?

4
我们使用Windows 2003服务器64位来运行一个WebSphere/J2EE应用程序(JVM也是64位)。该机器有16GB物理内存。不幸的是,我们的应用程序需要大量内存,而且增加额外的内存仍需要一些时间。
我知道操作系统本身需要一定数量的内存。话虽如此,假设这是唯一在系统上运行的应用程序,那么我们可以使用多大的安全(无需分页)堆大小?
3个回答

2

我认为答案将取决于许多因素,其中许多因素很难预测。

在我看来,确定安全的最大堆大小的最实用方法是通过试错。我会从约15GB的最大堆大小开始,查看系统的内存/分页统计信息,并进行调整。


0

最好的想法是进行实验... 在这里检查第一个答案here... 它会帮助你...

您可以编写批处理文件以对不同的堆大小进行实验,并查看它在哪里崩溃...


0

如果你有两个内存库,例如你有两个CPU,你可能会发现如果使用超过一半的内存,你的应用程序性能会显著降低。如果你使用大约3/4的内存库大小,你将获得最佳的内存性能。

你可能仍然可以通过使用更多的内存来获得更好的性能,但它不会按照你预期的方式扩展,并且你的GC时间会显著增加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接