2010年11月18日木曜日

メモリ不足

OleLoadPictureで画像データを読み込むためにまずGlobalAllocでメモリを取得するんだけど、
このときマシンのメモリ以上のメモリを要求したら処理にめがっさが時間がかかってフリーズ状態に陥るみたい。
でかい画像ファイルを読み込むこともありうるだろうから解決は無理そう。
 以前からときどきメモリを異常に食っててなんなんだろうとおもってたが、
メモリ確保中だからか強制終了もできないし、デバッガにも反応しないしで直すに直せなかった。
今日ようやく再現できて発覚。
 
 いめーじぺたぺたでは画像ファイルかどうかをチェックせずにOleLoadPictureにとりあえず投げてみるので、画像ファイル以外のサイズの大きなファイルでも上記の問題が発生する。
さらにファイルマネージャでコピーされたら、ソフトがそのファイルを自動で読みこむ機能がこの問題を暴発させる。
うっかりいめーじぺたぺたを起動中にファイルをコピーしようとしたら大惨事って流れ。ゲームの体験版とか。
 とりあえず画像ファイルかどうか拡張子チェックすることで対処しようとは思うが、
でっかい画像ファイルをよみこんだときはやはりこの問題が発生するので割とどうしようもない。
 
 メモリ不足つながりだが、
アンドゥバッファが増えてくるとメモリが不足して動作が遅くなる現象に何度か遭遇している。
いめーじぺたぺた以外のソフトでもなるのでPC側の問題だろう。
メモリ640MBで画像処理をしようというのが間違ってるのかも。

0 件のコメント: