假设我在生产 Unix 机器上有足够的内存。而且我有一个不使用那么多堆的 Java 后端应用程序。初步测试表明 100MB 看起来还不错。但是,当不设上限时,内存会增长到 1GB 及以上。如果不是因为应用程序所属的处理流不时出现阻塞,我可能不会在意。一种可能的(非常模糊的)解释是罪魁祸首是提到的 Java 应用程序。
问题:是否将堆放在不必要的高位会使垃圾收集延迟很长时间,以至于当它最终启动时,它“要做的事情太多”以至于明显影响性能?
我可能应该提到我们仍在运行 Java 1.4(相当旧的系统)。