スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



省メモリー化

OutOfMemoryErrorが発生するのは
Image.createImage()メソッドだということがわかった。

例外の内容からヒープの空き容量が足りないと思い,
まずは空き容量を画面に表示するようにしてみた。
(RuntimeクラスのfreeMemory()メソッド)

Softbankから提供されているとおり,
自分が使っている816SHの最大ヒープサイズは4M。

問題が発生するときの空き容量は約2Mがあった。
戦闘アニメーションに使用される画像は,
大きいもので背景が47KB,
アニメーション用画像 主人公3KB, 敵18KBで
あわせても68KB...2MBには程遠い。

また発生するのが数回戦ったあとということで,
循環参照によるメモリリークが疑われたが...
戦闘前と戦闘後のメモリ使用量を比較しても,増えてる傾向はみられない。
(再度,詳細を調査する必要あり)

このことからもJava VM側の問題のようにみえ
対応することができないと考えられる。

さて,いきなり暗礁に乗り上げたけど
どないしましょう...。

とりあえず戦闘画面の背景画像サイズを横に縮めてファイルサイズを33KBまで落としましたが
それでも問題がでる...。

空き容量との関連性はあまり高く内容に見えるけど...。
関連記事
スポンサーサイト



コメントの投稿

非公開コメント

アクセス
あなたは
キーワード
カテゴリー
最近の記事
リンク
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

WEB検索
Google

RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。