配列アクセスの高速化

多次元配列から要素を取り出すとき、そのほとんどがnullやundefinedである場合の話。

最初はtryを使って、もしnullやundefinedならnullアクセスのエラーがでるから、それがでるってことは要素がない、というふうにやっていた

for(){
var target:Obj = null;
try{
target = arr[i][j][k];
}catch(err:Error){
//i,j,kの場合オブジェクトはなかった
}

これをtryを使わない方法に変えたところ、速度が10倍近く早くなった!

for(){
var target:Obj = null;

if(arr[i] == null) continue;
if(arr[i][j] == null) continue;
if(arr[i][j][k] == null) continue;

target = arr[i][j][k];