[Android Studio] 起動時のメモリ割り当てサイズを変更する / コンパイラのエンコーディングを変更する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

idea.vmoptions で起動時のメモリ割り当てサイズを変更する

Android Studio の環境設定の小ネタです。Android Studio (IntelliJ IDEA) でも Eclipse のときみたいに「起動時にどのくらいまでメモリを使うことを許容するか」メモリ割り当てを変更することができます。
手順は簡単。~/Library/Preferences/AndroidStudioPreview (Windows は $IDEA_HOME/bin/idea.exe.vmoptions) に idea.vmoptions というファイルを作り、以下のようなオプションを書くだけです!

-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-XX:ReservedCodeCacheSize=128m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops

設定したオプションは Android Studio.app/bin/idea.vmoptions をコピーして値を変えています。それぞれ以下のようになります。

プロパティ名 説明
-Xms 起動時のヒープサイズ
-Xmx 最大ヒープサイズ
-XX:MaxPermSize クラスファイルをメモリ上に読み込む最大サイズ
-XX:ReservedCodeCacheSize 予約コード(コンパイル済みのコード?)のキャッシュの最大サイズ
-XX:+UseCodeCacheFlushing コードキャッシュが大きくなったときにコンパイル済みのコードを消すことを有効にするフラグ
-XX:+UseCompressedOops Javaオブジェクトのヒープサイズが32GB未満の場合に64bitJREのパフォーマンスを向上させるフラグ

自分のPCのスペックに応じて適切な値に変更しましょう。

idea.vmoptions でコンパイラのエンコーディングを変更する

Android Studio ではソース上に日本語のコメントを書くとビルドできないことがあります。以下のように「この文字は、エンコーディングSJISにマップできません」というエラーが出てしまいます。

encoding_error

このエラーが表示されたときは JDK のエンコーディングが UTF-8 に設定する必要があります。
方法はいろいろありますが idea.vmoptions に追加する方法がベストだと思います。app 内の Contents/info.plist に VMOptions を変更する方法などありますが、アップデートが入ったときに上書きされてしまう可能性もありますし、設定の優先度は idea.vmoptions のほうが高いようなので Preferences で設定したほうが良いと思います。
ということで以下を追加しましょう。

-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-XX:ReservedCodeCacheSize=128m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
-Dgroovy.source.encoding=UTF-8
-Dfile.encoding=UTF-8

これで再起動するとビルドできるようになっているはずです!

まとめ

Android Studio の起動オプションにまつわる2つの小ネタでした。メモリ割り当てサイズの変更は環境によっては劇的に爆速化することもありますので、設定が必要なかたは参考にしてください。

参考