Hatena::Groupsubtech

冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

 | 

Feb 06, 2010 (Sat)

Eclipse + Vim 開発環境構築 13:37 はてなブックマーク - Eclipse + Vim 開発環境構築 - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

Android SDKEclipse 前提でだいたい話が進むので、かたくなに Eclipse を使わないようにしているといらない苦労を負いすぎます (リソース管理とか)。ので、これを期に Eclipse と連携させて Vim を使う環境をつくりました。

Eclipse をコンパイル、実行環境にし、編集を Vim にするために

AutoComplPop の設定

.vimrc に追記

let g:AutoComplPop_Behavior = {
      \   'java' : [
      \     {
      \       'command'  : "\<C-n>",
      \       'pattern'  : '\k\k$',
      \       'excluded' : '^$',
      \       'repeat'   : 0,
      \     },
      \     {
      \       'command'  : "\<C-x>\<C-u>",
      \       'pattern'  : '\k\k$',
      \       'excluded' : '^$',
      \       'repeat'   : 0,
      \     },
      \     {
      \       'command'  : "\<C-x>\<C-f>",
      \       'pattern'  : (has('win32') || has('win64') ? '\f[/\\]\f*$' : '\f[/]\f*$'),
      \       'excluded' : '[*/\\][/\\]\f*$\|[^[:print:]]\f*$',
      \       'repeat'   : 1,
      \     }
      \   ]
      \ }

キーワードマッチしなければ eclipse に投げる (めっちゃ重い)。

デバッグ

保存すると自動で :Validate が走る。:lope で確認できる。+sign つきで vim がコンパイルされているならいい感じにでてくる!

:Validate が走るタイミングが保存よりも早いときがあってちょっと変

import 分関係

http://eclim.org/vim/java/import.html

  • :JavaImportMissing
  • :JavaImportClean

override しまくる

:JavaImpl すると override できるメソッド一覧がでてくるので、適当に RET おすと テンプレートが挿入される。便利なんだけど、Vimundo が効かなくなってしまうのであんまり使ってない (表示させてコピペ、っていう使いかたをしてる)

データクラス

ハッシュを自由に作れないのが LL に比べて極めて不便なので、つどデータクラスを作るわけですが、getter setter 作るのが死ぬほどめんどい。

  • :JavaGetSet

Android アプリケーションのヒープメモリを観察する 13:47 はてなブックマーク -  Android アプリケーションのヒープメモリを観察する - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

メモリが限られていると頻繁に OOM エラーがでますが、OOM エラーは出さないことが大前提なので、頑張って何が容量食ってるか調べないといけません。まぁ、コード的に勘が効く部分は良いのですが、ライブラリに隠蔽されていたり、普段 LL 使ってると見落したりする部分があるのでちゃんと計測したいもんです。

http://www.eclipse.org/mat/ をいれる。

エミュレータでアプリケーションを起動して、ある程度動かしてから

f:id:cho45:20100128123720p:image

↑ のボタンを押す

メモリーリークしているっぽいものまで解析してくれる。すごい

Histogram -> ソート -> 右クリック -> List objects でどんなオブジェクトがみれるっぽい。List objects の outgoing incoming はよくわからない。

開発中これを使ったら、画像のURLを保持する的な部分で随分メモリを食っていることが分ったので、はてな記法のみを保持してURLとかは必要なときだけ更めて生成 (パフォーマンスは劣化しますがOOMでるよりはマシです) するようにしたらだいぶ改善しました。

あと、スレッドの一覧を見ながら動かして想定通りのスレッド数かを観察するのも大事だと思いました。HttpClient はインスタンスごとにプールスレッドを持つので注意が必要でした (若干反則な気がしますが static に確保するようにしました)

 | 

スポンサード リンク

書いてる人

cho45 (佐藤広央) (www.lowreal.net)

Perl, JavaScript, Ruby, HTML, CSS, Web etc


スポンサード リンク