掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列でのメモリー不足 (ID:13503)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> コピーする瞬間はほぼ2倍のメモリが必要です。 動的配列は、string 型と同様、参照数を持ったスマートポインタとして実装され ていますね。ですから、パターン1では、再確保するたびにコピーが行われるた め遅くなるのはもちろんですが、そこいら中にメモリの断片化が発生します。 ですからメモリマネージャは大忙しで、新たに確保すべき領域を探し回り、見つ からなければ「メモリ不足」になるのでしょう。 動的配列やstring型に限らず、動的にメモリのサイズを変更するのは、とくに 拡大するときは高いコストが必要です。TMemoryStream などの場合もそうです。 予めサイズが分かっている場合は、一挙にサイズを確保してから操作する方が 一般には実行速度に関しても、メモリの負担に関してもかなり有利です。 また、サイズが予め分からない場合は、じわじわと細切れで増やすより、大きな 固まりとして増やし、メモリの再確保と自動的に行われる既存データのコピーの 回数を出来るだけ減らすべきです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.