我们有一个 PHP webapp,它调用 Java 二进制文件来生成 PDF 报告(使用 JasperReports)。 Java二进制输出PDF到标准输出并退出;然后 PHP 将 PDF 发送到浏览器。这个 Java 命令持续大约 3 到 6 秒,我认为当它持续 6 秒时是因为 GC 启动了。我想禁用 GC,因为无论如何当命令退出时所有内存都会返回。
我想知道如何为 Java 1.4.2 和 Java 1.6.0 禁用它,因为我们目前正在测试这两个 JVM 以查看哪个执行速度更快。
原文由 Nelson 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有办法完全禁用垃圾收集。垃圾收集仅在 JVM 空间不足时运行,因此您可以为程序提供更多内存。将这些命令行选项添加到 Java 命令
这为程序提供了 256Mb 的 ram(默认值为 64Mb)。不过,对于默认大小的 JVM,垃圾收集不会花费 3 秒,因此您可能想要更仔细地调查程序在做什么。 Yourkit 分析器 对于找出花费很长时间的内容非常有用。