ホーム > .NET Framework | Tips | プログラミング | 未分類 > .NET FrameworkでLOH断片化によるメモリリークもどき

.NET FrameworkでLOH断片化によるメモリリークもどき

ちょっと前に、画像とかをManagedな配列で持つと、処理は遅いけどGarbage Collectionしてくれるし良いかも的な事を書いたけど、どうやら遅いだけでは無いらしい。

Garbage Collectionがメモリの配置をゴニョゴニョ弄ってくれるおかげでメモリリークをある程度気にしなくて良いかと思いきや、やはり巨大なデータをゴニョゴニョするのは時間がかかるらしく、C#(というかCLR)では85kbよりでかい配列などのメモリはLarge Object Heap (LOH)に入れて、再配置はしないようになってるそうです。
http://msdn.microsoft.com/ja-jp/magazine/cc534993.aspx

てことで、画像とかGC任せで管理するのは危険とおもはれる。
アプリを開いてから閉じるまでの枚数が限られてたりする場合はいいけど、そうじゃない場合は断片化してメモリ食っちゃう可能性がありそう。
まあ考えてみれば当然ですよね。世の中の画処理ライブラリもそうなってるし。。
でも僕のような素人のために画処理の本の最初に書いといて欲しい。

結局Marshal使ってunmanageで頑張るしか無いらしい。
msec単位で時間かかるとしても、GCにLOHメモリの再配置を指示できればいいのに。。。

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
http://ka.taoka.info/wp-trackback.php?p=207
トラックバックの送信元リスト
.NET FrameworkでLOH断片化によるメモリリークもどき - ka.taoka.info より

ホーム > .NET Framework | Tips | プログラミング | 未分類 > .NET FrameworkでLOH断片化によるメモリリークもどき

カレンダー
« 2018 年 12月 »
S M T W T F S
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
最近の反応
メタ情報

ページの上部に戻る