System.gc()
(https://www.codenameone.com/javadoc/java/lang/System.html#gc--)是否以代号One做某事?
我在XCode中对Ram进行性能分析时在Codename One应用程序中进行了尝试,但是System.gc()
似乎被忽略了。
答案 0 :(得分:1)
System.gc()
已实现,但是它是异步的,因为GC是一个单独的线程。您不应该正常调用它,因为它确实会严重影响性能。我们不支持的是测量可用RAM的数量。在多任务操作系统中很难做到这一点。 Java通过使用Xmx
标志来欺骗这个问题,但这很愚蠢,因为我们想继续占用操作系统为我们提供的RAM。如果操作系统发送RAM低事件,我们将隐式运行GC。
答案 1 :(得分:1)
System.gc()
的行为。
实际发生的情况取决于平台,并且取决于JVM选项。例如,有一个JVM选项可以指示JVM 完全忽略对System.gc()
的调用。
但是,这应该没有意义。
在大多数情况下,致电System.gc()
是一个坏主意:
在大多数情况下,都有针对上述问题的更好(更有效,更有效)的解决方案。例如,获得更多的物理内存,增加堆大小或查找并修复内存和资源泄漏。
通常,最好让JVM本身管理垃圾回收。在大多数情况下,它可以比您的应用程序做得更好。