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

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);

トラックバック(0)

このブログ記事を参照しているブログ一覧: double[][] vs. double[] wrapped Class

このブログ記事に対するトラックバックURL: http://trialpc.net/mt/mt-tb.cgi/754

コメントする

Advertizement

このブログ記事について

このページは、tetsuが2006年4月16日 20:25に書いたブログ記事です。

ひとつ前のブログ記事は「オープンラボ」です。

次のブログ記事は「ソフトウェア開発技術者試験」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.0

最近のコメント

カウンタ

リンク