iモード携帯電話用Java(iアプリ) Part 5

このエントリーをはてなブックマークに追加
13292
N900iだけでConnector.openで例外が発生する件
本質的な解決じゃないけど例外は出なくなったので報告。

例外を発生するアプリは通信処理前にスクラッチパッドから約100kの
データをロードしててメモリをたくさん使っています。そこで
>>115氏の内容を参考に
データロードする前に通信処理をしたところ例外が発生しなくなりました。
ある程度メモリを使ってから通信するとエラーが出る可能性大です
ちなみにアプリのSPSIZEは95kbです。
とりあえず何の例外が発生したか出力するようにしたので
N900iユーザから報告待ちです。
わかったらまた書き込みます。
>>132
報告お疲れ様です!
参考になります!
13492:04/05/23 21:03
N900iだけでConnector.openで例外が発生する件
例外が分かりました

com.nttdocomo.io.ConnectionException: NoResource

リソース不足ってことですかね。
やはりメモリの問題ですか
13592:04/05/23 21:15
ってゆーか単純にリソース食い尽くしてエラーが出てるの?
自分のプログラムが端末の限界を超えて作ってしまったってこと?
でもN505iで動くし,もしかするとSPSIZE=409600KBであれば動くかも
しれないので,なんともいえないですね。。。
メモリーが超余裕でもN900とP900はメモリーオーバー吐く。
SP409600にするとでなくなる。(>>135 単位KBじゃないぞ)
ひどすぎるバグである。
13792:04/05/23 21:38
>>136
KB誤記スマソ
本当にひどすぎるバグだ=3
138124:04/05/23 22:22
>>135
リソース不足だったか。Nってすぐメモリなくなるんだよな。なんでなんだか。
ちなみに、ConnectionExceptionとかは、getMessage()の内容も重要だけど、
getStatus()の戻り値も重要なので、今後デバッグする時は出力するように書いといた方が良いカモ。
>>138
メモリ管理が5KB単位なんで、頻繁に確保したり解放したりしてると
フラグメンテーションでえらいことになる。

しかもRuntime#freeMemory()では検出できないという・・・orz
フラグメンテーションって。。。
GCするときにコンパクションしてないってことか...orz
>>139
まぁ、ネイティブなんでfreeMemoryとかじゃわかんないよなぁ。

NP問題については以前話題になってたが、
spsize409600にするのが基本のようだね。
jamだけ変更すればいいわけなんで、
それが一番簡単でトラブルも少なくていいかもな。
へたに、spsizeケチるより
どーんといこうや。
NとPはgcが未実装だってどこかで見たが
さすがにGCは実装してると思うぞ…。
GC実装してなかったらCLDC準拠じゃないだろ。。
こうして見ると、Nは503iからずっとトラブルメーカーか?
他にも酷い機種はあるが、トップシェアならきちんとやってくれ。