我们有一个PHP webapp调用java二进制文件来生成pdf报告(使用jasperreport),java二进制文件输出pdf到标准输出并退出,然后php将pdf发送到浏览器。这个java命令持续大约3到6秒,我认为当它持续6秒时,因为GC启动,所以我想禁用它,因为无论如何当命令退出所有内存时都会返回..
我想知道如何为Java 1.4.2和Java 1.6.0禁用它,因为我们正在测试两个JVM以查看哪个执行速度更快..
发布于 2018-09-25 14:28:29
这听起来像是在试图节省时间,但却以错误的方式进行。与启动和关闭java进程所花费的时间相比,禁用垃圾回收所节省的时间(对于单个任务而言)将是微不足道的。您可能需要考虑进行Java进程启动,如果您的目标是运行时性能,则可以多次请求执行所需的工作。
发布于 2018-09-25 15:22:51
没有办法完全禁用垃圾收集。垃圾收集仅在JVM空间不足时运行,因此您可以为程序提供更多内存。将这些命令行选项添加到Java命令
-Xmx256M -Xms256M
这给程序256Mb的ram(默认为64Mb)。但是,对于默认大小的JVM,垃圾收集不会花费3秒钟,因此可能希望更密切地调查程序正在执行的操作。Yourkit profiler对于弄清楚需要花费很长时间的内容非常有用。
https://stackoverflow.com/questions/-100001403
复制相似问题