{"text_format":"1","workbook":"xlsx","n_sheets":1,"sheets":["Sheet1"],"not_rendered":{"charts":1,"images":0,"macros":1,"external_links":0,"defined_names":0,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Sheet1","index":0,"n_rows":98,"n_cols":15,"rows_kept":98,"cut":false,"hidden":false,"merged":[]}
[]
[null,"■実験"]
[null,null,"◆アクセス速度"]
[null,null,null,"<<条件>>"]
[null,null,null,null,"ループ回数 1000 回"]
[null,null,null,"<<実験結果>>"]
[null,null,null,null,"[要素数 10000]",null,null,null,null,null,"[要素数 100000]"]
[null,null,null,null,null,null,"配列","Collection","Dictionary",null,null,null,"配列","Collection","Dictionary"]
[null,null,null,null,null,"Index 0",0,"-","-",null,null,"Index 0",0,"-","-"]
[null,null,null,null,null,"Index 999",10,"-","-",null,null,"Index 999",0,"-","-"]
[null,null,null,null,null,"Index 9999",0,"-","-",null,null,"Index 9999",0,"-","-"]
[null,null,null,null,null,"Index 99999","-","-","-",null,null,"Index 99999",0,"-","-"]
[null,null,null,null,"Key","Index 0","-",0,2300,null,"Key","Index 0","-",0,24747]
[null,null,null,null,"Key","Index 999","-",0,2300,null,"Key","Index 999","-",10,24341]
[null,null,null,null,"Key","Index 9999","-",50,2370,null,"Key","Index 9999","-",50,24352]
[null,null,null,null,"Key","Index 99999","-","-","-",null,"Key","Index 99999","-",690,24017]
[null,null,null,null,"Item","Index 0","-",0,2340,null,"Item","Index 0","-",0,24076]
[null,null,null,null,"Item","Index 999","-",0,2331,null,"Item","Index 999","-",10,24134]
[null,null,null,null,"Item","Index 9999","-",50,2340,null,"Item","Index 9999","-",50,24260]
[null,null,null,null,"Item","Index 99999","-","-","-",null,"Item","Index 99999","-",690,23742]
[null,null,null,null,"Item",0,"-",10,0,null,"Item",0,"-",0,10]
[null,null,null,null,"Item",999,"-",0,0,null,"Item",999,"-",10,0]
[null,null,null,null,"Item",99999,"-",0,0,null,"Item",9999,"-",0,0]
[null,null,null,null,"Item",99999,"-","-","-",null,"Item",99999,"-",10,0]
[]
[null,null,null,"<<考察>>"]
[null,null,null,null,"配列",null,"全体の要素数、アクセスする要素番号にかかわらず早い！"]
[null,null,null,null,"Collection",null,"全体の要素数が大きいほど、遅い！"]
[null,null,null,null,null,null,"アクセスする要素番号が大きいほど、遅い！"]
[null,null,null,null,"Dictionary",null,"全体の要素数が大きいほど、ものすごく遅い！"]
[null,null,null,null,null,null,"アクセスする要素番号は速度には無関係。"]
[]
[null,null,"◆要素追加速度"]
[null,null,null,"要素数毎の違いをプロット"]
[null,null,null,"<<条件>>"]
[null,null,null,null,"ループ回数：１"]
[null,null,null,"<<実験結果>>"]
[null,null,null,null,null,"要素数 ","配列","Collection","Dictionary"]
[null,null,null,null,null,1000,0,30,10]
[null,null,null,null,null,10000,20,80,30]
[null,null,null,null,null,100000,80,940,770]
[null,null,null,null,null,null,"↑redim","↑add","↑add"]
[null,null,null,"<<考察>>"]
[null,null,null,null,"速度は以下の通り"]
[null,null,null,null,null,"配列＜＜＜Dictionary＜Collection"]
[]
[null,null,"◆for と for each の速度"]
[null,null,null,"<<条件１：データアクセス込み>>"]
[null,null,null,null,"100000回ループの結果"]
[null,null,null,null,"配列はインデックスアクセスとfor each データアクセスの結果。"]
[null,null,null,null,"CollectionとDictionary は key、Item アクセスの結果"]
[null,null,null,"<<実験結果１：データアクセス込み>>"]
[null,null,null,null,"◇データアクセス込みの速度"]
[null,null,null,null,null,null,"配列","Collection","Dictionary"]
[null,null,null,null,null,"For（Index）",0,30,"計測不能（激遅！）"]
[null,null,null,null,null,"For Each",10,"-","-"]
[null,null,null,null,null,"For Each (Item)","-",20,640]
[null,null,null,null,null,"For Each (Key)","-","-",20]
[]
[null,null,null,"<<条件２：ループ文のみ>>"]
[null,null,null,null,"100000回ループの結果"]
[null,null,null,null,"ループ内の処理はインデックスに無関係な処理とする。"]
[null,null,null,null,null,"sStr = \"\""]
[null,null,null,"<<実験結果２：ループ文のみ>>"]
[null,null,null,null,null,"For",80]
[null,null,null,null,null,"For Each [Array]",170]
[null,null,null,null,null,"For Each [Collection]",210]
[null,null,null,null,null,"For Each [Dictionary]",200]
[null,null,null,"<<考察>>"]
[null,null,null,null,"単純にループさせるなら for の方が早い。"]
[null,null,null,null,"ただ、Collection、Dictionary は For を使うとインデックスアクセスしないといけないため、"]
[null,null,null,null,"For Each の方が早くなる。"]
[]
[null,null,"◆存在確認"]
[null,null,null,"<<条件>>"]
[null,null,null,null,"最終要素にあるデータを取り出し（ワーストケース）"]
[null,null,null,null,"見つけたら、ループを抜ける"]
[null,null,null,"<<実験結果>>"]
[null,null,null,null,null,"要素数 10000",null,null,null,null,"要素数 1000"]
[null,null,null,null,null,null,"配列","Dictionary",null,null,null,null,"配列","Dictionary"]
[null,null,null,null,null,"ループ回数：10",20,0,null,null,"ループ回数：10",null,10,10]
[null,null,null,null,null,"ループ回数：100",340,0,null,null,"ループ回数：100",null,60,0]
[null,null,null,null,null,"ループ回数：1000",3390,0,null,null,"ループ回数：1000",null,550,0]
[null,null,null,null,null,"ループ回数：10000",34847,0,null,null,"ループ回数：10000",null,3401,0]
[null,null,null,"<<考察>>"]
[null,null,null,null,"・配列は要素番号が大きくなるほど検索が遅くなる。"]
[null,null,null,null,"Dictionary は要素番号に関係なく高速。"]
[null,null,null,null,"・システム全体で「要素数が 1000」のデータに「1000回以上検索する」場合に大きな差が出てくる。"]
[null,null,null,null,null,"要素数X×ループ回数Ｙ＝1000000 ⇒ 数100ms の差異"]
[]
[null,"■全体考察"]
[null,null,"・配列"]
[null,null,null,"・全体的に爆速！インデックスアクセスだけなら配列を使うこと！"]
[null,null,"・Dictionary"]
[null,null,null,"インデックスアクセスは遅すぎるので、絶対インデックスアクセスするな！必ず For Each でアクセスすること！"]
[null,null,"・Collection"]
[null,null,null,"・大きな要素番号にアクセスする際は遅くなる！ので、要素数が予想できない場合は基本使わない。"]
[null,null,null,"ただし、Key アクセスの場合は問題なし！"]