[英]Arrays.fill() performance
我有一個Tuner應用,並且在后台有大量計算。 我注意到在計算時我經常進行垃圾回收。 我已替換:
float someBigArray = new float[bigNumber];
與全局數組:
if (someBigArray == null) {
someBigArray = new float[bigNumber];
} else {
Arrays.fill(someBigArray , 0f);
}
該數組在計算FFT時使用,稱為每秒多次。 我已經擺脫了頻繁的垃圾回收,但是我不確定這是否是更有效的解決方案。 也許有更好的主意。
它比回收一個數組(並重新初始化它)要快(分配一個新數組)要快(大概1個 )。
您能比重新初始化更好嗎? 可能不是!
但是,如果您每次僅使用大數組的一小部分,那么重新初始化整個數組可能會很浪費。 (可能值得跟蹤您每次使用多少陣列。)
1在某些情況下,涉及引用數組的情況對於GC數組而言要比由GC進行保管更好。 例如,在權屬數組中對新空間對象的引用將導致新對象不會被收集在新空間集合中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.