我们有一些代码可以在Java中运行,并且使用IKVM在.NET中运行。 Java代码,完全相同的源代码,在Java中运行速度快了5到10倍。
我们看到的最大区别是.NET端30%或更多的时间都在垃圾收集器中。
我们可以做些什么来缩短GC时间吗?
答案 0 :(得分:0)
查看对象生命周期(例如),检查是否可以使用flyweights或object pool来最小化您创建的对象实例的数量。您创建的实例越少,必须收集的实例越少。分析代码,查看它使用的算法并搜索可以最小化gc事件的模式(通过分析发现)。你想要一枚银弹,但如果有一颗银弹,那么它可能已经启用了。