私は入力としてObject型をとるインタフェースを扱っています。これは、私が時にはインタフェースを通って渡す必要のある原始的なデータを持っているので、私にとっては残念です。これはもちろん私を箱に強制します。単一要素のプリミティブ配列を渡してボクシングを避ける
プロファイリングでは、この領域がコード内のホットスポットとなっています。私はこうしてこの領域をより速くするための選択肢を模索しています。
私は今日、静的なプリミティブ配列を事前に割り当てて、これにプリミティブな値を格納してから、配列を渡します(そして、インタフェースの実装では、配列。
これをテストするためにいくつかのコードを書いていますが、合理的に高い値(1000万)では、配列メソッドが非常に高速になっていることがわかります。テストの反復回数を増やすと、
これまでにこのアプローチについて誰かが考えていたのか、これをベンチマークする方法についての提案があるのでしょうか。
コード例:
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
なぜグローバルな 'double'変数がないのですか? – irreputable