配列の読み込み速度の比較

ゲームプログラミングであれば,やはり速度は重要です.

STGをつくるにあたり,今回は配列の読み込み速度を測定してみました.

JavaでHello World コレクション(List)編

こちらでとりあえずArrayListとLinkedListの場合は速度が調べられているのでそれを使うとして,今回は普通の,配列の要素数の固定されている“なんとか[添え字]”で呼び出すやつを調べてみました.

一応,こちらでもLinkedListとArrayListを調べたほうが良いのでしょうが,上のサイトのサンプルソースがエラー9個も出てコンパイルできないので(爆*1,まあ割愛,ということで.

多分メモリ速度は大して変わらんでしょう.そんなに前の記事じゃないみたいだし.

以下,ソースです.

基本的にあのソース再利用してます.

import java.util.*;
public class List {
public static void main(String[] args) {
try {
long start, end;
int[] Matrix = new int[100000];
int tmp;
/** かきこみ **/
start = System.currentTimeMillis();
for (int i=1;i<100000;i++) {
Matrix[i] = i;
}
end = System.currentTimeMillis();
System.out.println("配列 かきこみ : " + (end - start));
/** よみこみ **/
// 配列
start = System.currentTimeMillis();
for (int i=1;i<100000;i++) {
tmp = Matrix[i];
}
end = System.currentTimeMillis();
System.out.println("配列 よみこみ : " + (end - start));
} catch (Exception e) {
e.printStackTrace();
}
}
}

で,実行してみます.

E:\***>java List
配列 かきこみ : 0
配列 読み込み : 0

はやっ!測定不能みたいです.

仕方ないので0の数を2つ*2ほど増やしてみます.

E:\***>java List
配列 かきこみ : 47
配列 読み込み : 47

うえwwww速すぎwwwww

と言うわけで,滅茶苦茶速いですね!

出来るだけ普通の配列を使いましょう(当然

*1:ArrayListをList型に入れようとしてもできない・・・らしい.これ,本当にこのときはコンパイルできたのか?

*2:3つ増やしたらヒープサイズが足りなくなりましたw