[那么说来在cpu被占用的情况下先调用system.runFinalization(),再调用system.gc(),也并不能保证它一定会成功,问题是如果这么调用了,只要cpu空闲下来就会处理吗?
还有,如果我在一个线程里频繁做system.runFinalization()和system.gc(),对机器性能影响不大,是吗?谢谢~!]这个确实比较复杂,我猜测在不同的JVM(包括在不同的OS上,以及在同一个OS上但不同公司port
的JVM)上,可能答案不同。我猜测(没有看见过实例文献):不同的JVM的GC算法可能不同,即使
你调用了gc()/runFinalization(),并且CPU”空闲“,可能仍然不能”确认“GC一定发生,
至少仍然不能”确认”何时发生令一种情况,你的调用不一定被“记忆”,即:你现在gc(),但CPU忙没有做,过一会CPU空闲,
但不一定能记住这件事并且补做如果你频繁调用,总的来说会增加GC的概率,但也不一定保证,另一方面,你频繁调用,也
不一定“保证”会增加CPU负荷哪位大侠有这方面的资料?谢谢,嘻嘻System.gc() == Runtime.getRuntime().gc()
System.runFinalization() == Runtime.getRuntime().runFinalization()