- - PR -
.NET Framework でメモリ不足例外の条件
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-21 16:58
いつも利用させていただいています。
現在、開発しているシステムで メモリ不足 または OutOfMemoryException が発生します。発生頻度としては状況です。ただし、パフォーマンスモニタ メモリ使用率を確認したところ、Memory\Available Bytes はまだ、1GB以上 余裕があります。また、タスクマネージャーのコミットチャージを参照して も限界値には達していません。 VB.NET で メモリ不足または OutOfMemoryException が発生するのは、どの ような条件・状況なのでしょか。ご存知の方がいらっしゃいましたら、ご教 授ください。 【アプリケーション条件】 言語:VB.NET(.NET Framework 1.1) 実行OS:Windows2003 SE 実行環境:Metaサーバ上で実行 | ||||
|
投稿日時: 2006-06-21 17:34
配列の場合などは、連続したメモリ領域の確保が出来ずにOutOfMemoryExceptionが発生することがあります。 | ||||
|
投稿日時: 2006-06-30 07:14
32bitアプリケーションの場合、アプリケーションが利用できるメモリ量は通常2GBまでです。これはどれだけ物理メモリを積んでも変わりません。
ただこの上限に引っかかるほどでっかい配列を作っているわけではないでしょうね。。 現状のロジックが構造体もしくは通常型の配列でこのエラーが出るようでしたら、わざとデータクラスを作って、配列をArrayList等にすると、このエラーを回避することが出来るかもしれません。ただしボクシングとアンボクシングが入り速度的には遅くなると思います。 本当は配列を分割するというか、もっと少ない配列で動作するようロジックを見直すべきなんでしょう。 _________________ いしさかただひろ(*^^)v | ||||
|
投稿日時: 2006-06-30 07:17
「どの命令を実行した時に」と言うのを明確にしてくれないと、「メモリが不足したときに」としか答えようがないのですけど:-
変わったところでは、非同期IOを短時間に大量に実行すると、非同期IOを実現するためのFIFOキューが不足して、OSがメモリ不足のエラーを返したりします。.NETで試したことはありませんが、恐らくOutOfMemoryExceptionになるでしょうね。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ |
1