System.gc();
在加载图像之前,从我所知道的来看,它可以正常工作。
昨天,我决定使用一款非常有用的软件叫做FindBugs,它会扫描你的代码并报告可能导致错误或不建议使用的策略。问题是,我提到的这段代码被报告了。描述如下:
... 强制垃圾回收;仅在基准测试代码中极其可疑
并且继续阐述:
代码显式调用垃圾回收。除特定情况外(如基准测试),这是非常可疑的。
过去,人们在close或finalize方法等例程中明确调用垃圾收集器的情况已经导致了巨大的性能黑洞。垃圾回收可能很昂贵。任何强制进行数百或数千次垃圾回收的情况都会使计算机速度变慢。
因此,我的问题是:在这种情况下以编程方式调用垃圾回收器是否不合适?我的代码只调用一次,并且包含它的方法很少使用。如果不允许调用它,那么在需要在进行非常内存密集型操作之前尽可能释放更多内存的情况下,应该怎么做?