【发布时间】:2018-03-09 07:20:31
【问题描述】:
我有一个调谐器应用程序,并且在后台进行大量计算。 我注意到我在计算时经常进行垃圾收集。我已经更换了:
float someBigArray = new float[bigNumber];
带全局数组:
if (someBigArray == null) {
someBigArray = new float[bigNumber];
} else {
Arrays.fill(someBigArray , 0f);
}
在计算 FFT 时使用此数组,这称为每秒多次。 我已经摆脱了频繁的垃圾收集,但我不确定它是否是更有效的解决方案。也许有更好的主意。
【问题讨论】:
-
我们可能需要更多背景信息:您的
someBigArray的目的是什么?换句话说:你打算用那个数组做什么? -
这个数组在计算 FFT 时使用,这被称为每秒多次。我也编辑了问题。
-
stackoverflow.com/questions/9128737/… -- 这里的示例使用比 Arrays.fill 更高效的解决方案
-
似乎在现代 Java 运行时中,Arrays.fill 现在由于psy-lob-saw.blogspot.com/2015/04/…而性能更高