Object型を入力として受け取るインターフェースを使用しています。プリミティブデータがあり、インターフェイスを介して渡す必要がある場合があるため、これは私にとっては残念なことです。もちろん、これは私を箱に入れさせます。
プロファイリングにより、この領域がコードのホットスポットであることが示されました。したがって、私はこの領域をより速くするための代替案を模索しています。
これについて今日私が考えたのは、静的プリミティブ配列を事前に割り当て、それにプリミティブ値を格納してから、配列を通過させることです(次に、インターフェイスの実装で、配列からdoubleを取得します。
私はこれをテストするためにいくつかのコードを書きました。適度に高い値(1,000万)の場合、配列メソッドの方が大幅に高速であることがわかります。テストの反復回数を増やすと、2つは収束します。
誰かが以前にこのアプローチについて考えたことがあるかどうか、そしてこれをうまくベンチマークする方法について何か提案があるかどうか疑問に思います。
サンプルコード:
Double data = Double.valueOf(VALUE);
inst.interface(data);
//inside interface(Object object)...
Double data = (Double) object;
double d = data.value();
対..。
doublearray[0] = VALUE;
inst.interface(data);
//inside interface(Object object)...
double[] data = (double[]) object;
double d = data[0];
ありがとう!RB