日曜日, 6月 25, 2006

メモリとの格闘


Star Fleet EmpireのCocoa版は、ようやくコンピュータAIの一部までたどり着いたのですが、メモリーリークでアプリがどんどん肥大化してしまい、メモリ対策に移っています。
 XCodeにMalloc Debugというツールがあって、これでメモリーリークを調べて対策。これでメモリーリークはだいぶ収まったのですが、今度はautoreleaseの時に二重解放やら解放されたメモリにアクセスしちゃったり、不安定化。
 [[NSArray alloc]init]だと、retainせずとも既に参照カウンターが1あがっているのですね。だけど、[NSArray arrayWithObject]だど、autoreleaseされた状態で、参照カウンターはメモリープール開放時に0になってしまう。こんなこともわからないでプログラム組んでたんでもう大変。
 一週間くらいはメモリ対策に費やしそうです。

0 件のコメント: