さて...頭に浮かぶ最も簡単なことは、型の標準の2次元配列を使用し、[x] [y]の方法で要素にアクセスすることです。 しかし、それはどれほど効果的ですか? おそらく、1次元配列で操作し、要素を[x + y * size_x]として参照する方が高速でしょうか?
すべてのiにドットを付けるために、配列のさまざまなオプションの読み取りおよび書き込みの速度をチェックするテストを作成しました。
次のオプションが思い浮かびました:
- 2次元の型なし配列(配列)
- 1次元の型なし配列(配列)
- 2次元型配列(ベクター。<ベクター。<int >>)
- 1次元の型付き配列(ベクトル。<int>)
- ストレージとしてBitmapDataを使用し、アクセスにsetPixel / getPixelを使用する
- 1次元バイト配列(ByteArray)
- さて、そして最後に、倒錯。 Altemyは、クイックメモリアクセスによって加速されたByteArrayアクセスを高速化します
そこで、コードの実行速度を比較する小さなテストを作成しました。 このテストでは、1500x1500ポイントの配列のすべての要素の読み取りと書き込みをシミュレートしました。 各操作は5回実行され、平均時間が取られました。
また、もちろん、動的配列は事前に作成され、要素で満たされています(つまり、テスト測定中に新しい要素は追加されませんでした)。
だから、何が起こった:
チャート:
結論は明らかです。
ここに投稿されたソースコード: wonderfl.net/c/d58d