double[][] vs. double[] wrapped Class

  • 更新日:
  • Java

doubleの配列の配列と、doubleの配列をクラスで包んだクラスではどちらが速いかを試してみました。
つまり、配列の配列を仮に2次元配列とみて、クラスで同様に実装した場合はどうなるかを検討しました。

比較的単純な実装の元でやってみた結果は以下の通り。
- 配列の配列(4000*1000) : 46ms
- 実装された配列(4000*1000) : 109ms

これを見る限りでは、配列の配列の方が速いことがわかります。配列の構成を変えてもう一度。
- 配列の配列(40000*100) : 31ms
- 実装された配列(40000*100) : 109ms

やはり、クラスでラッパーされているため、関数呼び出しのためのオーバーヘッドが大きいのでしょうか。
テストケースは下記の通りです。

double[][] array = new double[40000][100];
long time = System.currentTimeMillis();
int length0 = array.length;
int length1 = array[0].length;
for(int i=0;i<length0;i++){
	for(int j=0;j<length1;j++){
		array[i][j] = i*length1+j;
	}
}
	
for(int i=0;i<length0;i++){
	for(int j=0;j<length1;j++){
		double val = array[i][j];
	}
}
time = System.currentTimeMillis() - time;
System.out.println(time);

Track Back

Track Back URL

コメントする

公開されません

refresh captcha

画像の中に見える文字を入力してください。

このページの上部へ

About

tetsuの日記・雑記です。
日々経験したことを記録していきます。

広告

サイト内検索

最近のピクチャ

  • リアディレーラ

月別アーカイブ

最近のコメント