【发布时间】:2012-05-31 04:20:36
【问题描述】:
我启动了我的 JRuby irb 控制台并输入:
irb(main):037:0* GC.enable
(irb):37 warning: GC.enable does nothing on JRuby
=> true
irb(main):038:0> GC.start
=> nil
irb(main):039:0>
如何在程序期间手动启用或启动 JVM 垃圾?
我问是因为我有一个程序需要生成大约 500 MB 的测试数据并将其保存在 MySQL 中。该程序使用了大约 5 级嵌套循环,在生成大约 100 MB 的测试数据后,由于没有更多的堆内存,它崩溃并出现 JVM 内存堆异常。我想让垃圾收集器在每次运行外循环后运行,以便清理内循环中创建的所有孤立对象。
【问题讨论】:
-
这不太可能有帮助,因为如果 JVM 内存不足,它会在放弃之前运行 GC。您可能需要确保持有引用的时间不会超过所需时间和/或增加堆大小。
标签: garbage-collection jvm jruby