我们使用Windows 2003服务器64位来运行一个WebSphere/J2EE应用程序(JVM也是64位)。该机器有16GB物理内存。不幸的是,我们的应用程序需要大量内存,而且增加额外的内存仍需要一些时间。我知道操作系统本身需要一定数量的内存。话虽如此,假设这是唯一在系统上运行的应用程序,那么我们可以使用多大的安全(无需分页)堆大小?
如果你有两个内存库,例如你有两个CPU,你可能会发现如果使用超过一半的内存,你的应用程序性能会显著降低。如果你使用大约3/4的内存库大小,你将获得最佳的内存性能。 你可能仍然可以通过使用更多的内存来获得更好的性能,但它不会按照你预期的方式扩展,并且你的GC时间会显著增加。