Android 2.3のDalvikはコンカレントGC!!
API Level 9でデバッグしていたら、以下のようなログが目に飛び込んできた。
12-10 12:16:50.623: DEBUG/dalvikvm(949): GC_CONCURRENT freed 479K, 50% free 3144K/6279K, external 1204K/1591K, paused 4ms+5ms 12-10 12:16:50.681: INFO/dalvikvm(949): Jit: resizing JitTable from 512 to 1024
おいおい、コンカレントGCなんて何時サポートしていたんだ!?
Android 2.3 Platform Highlights
[Dalvik runtime]
- Dalvik VM:
- Core libraries:
- Updates from upstream projects:
- OpenSSL 1.0.0aをサポート
- BouncyCastle 1.45をサポート
- ICU 4.4をサポート
- zlib 1.2.5をサポート
なるほどしっかり書いてあった。
コンカレントGCが実装されたということは近いうちに登場するマルチコアCPUを見越してのことだろうか。これまではDalvikはJVM1.2か1.3相当だと思っていたが、これでJVM1.4と同等になったと見てよいだろう。
私はWindowsで開発をしているが2.3になってから明らかにエミュレータの動作が緩慢になったと感じている。これは上記コンカレントGCをサポートしたことと無関係ではあるまい。(一般的にコンカレントGCはメインスレッドと並行してGCスレッドを動かすためシステムの応答に直接響く)
...取りあえずデバッグでは止めたいな。