<< 2011/09/18トップページ2011/09/20 >>
2011年9月19日

resetじゃなくfinalizeなのかぁ

ふむ
先日のJNIでSQLietを使って
ダンプを取込む処理で落ちてた件が解決しましたぁ

まぁ〜原因はメモリーリークかなぁ

まあ、そう思ってSQL(SQLステートメント(st))使った後に
リセット(sqlite3_reset)してみた
こんな感じ

rc = sqlite3_prepare_v2(db, fs1, -1, &st, NULL);
rc = sqlite3_step(st);
sqlite3_reset(st);

だがエラーが出る(^^;)

それで
DB閉じる前にやっていた
ファイナライズ(sqlite3_finalize)を
リセットの場所に入れてみた

sqlite3_finalize(st);

ハイ落ちなくなりましたww
ふむ

勘違いだったのは
sqlite3_resetはSQLを
再実行出来る様にする為で
あって
確保したメモリー領域を再利用する訳じゃないのね

なのでsqlite3_finalizeで解放しないと
永遠とメモリーに放置されるのねぇ(^^;)

まあ
SQL再利用しない場合は

sqlite3_prepare_v2
sqlite3_step
sqlite3_finalize

の3点セットで行わないと
メモリーにゴミが溜まるのねぇ〜
はい勉強になりましたw

あぁ〜あと実行結果は
(3回計測)

09-18 17:57:32.465: INFO/DB_v2dump(11610): 9233ms
09-18 17:58:13.805: INFO/DB_v3reload(11610): 41339ms

09-18 17:59:08.895: INFO/DB_v2dump(11610): 9234ms
09-18 17:59:47.177: INFO/DB_v3reload(11610): 38280ms

09-18 18:01:47.805: INFO/DB_v2dump(11610): 8554ms
09-18 18:02:26.456: INFO/DB_v3reload(11610): 38653ms

速いなぁw
40秒弱かぁ
Javaでは100秒弱だったし
約半分かぁ〜

ただ
DBのVerUPだけなら、このままで正しいのだが
文字コードが元のままで
「SJIS」から「UTF-8」に変換掛けてないので、
その処理入れないとAndroidでは
漢字とか文字化けするのよねぇ〜

さて本番ロジックに取込む前に
そこら辺もテストロジックで組んでみるかなぁ〜〜


投稿者:秀at 03:45 | さんでープログラム(Android編) | コメント(0) | トラックバック(0)

スマホでワンセグ

まあIS11CAは地デジの機能は付いていないのだが

iOS/Android端末対応の無線LANワンセグチューナが発売になる
「MeoTune」てのかぁ
そうIS11CAでもワンセグ見れるってか
Android2.2以降ならタブでもOKかぁ〜

携帯型ならPSPで見れるので
今すぐ必要では無いが
評判を見てから買うか考えてみるかな



投稿者:秀at 01:02 | つぶやき | コメント(0) | トラックバック(0)

<< 2011/09/18トップページ2011/09/20 >>
▲このページのトップへ