22
22

More than 5 years have passed since last update.

Javaで空きメモリの量を簡単に調べる

Last updated at Posted at 2014-05-30

開発中に空きメモリの量を調べたいことがたまにあります。
Androidアプリの場合はDDMSで調べられますが、これをつかうとアプリの動作が重くなったりするので、特にアプリのパフォーマンスが問題になるときはDDMSをつかえないことがあります。

そのときに、メモリの空き容量だけですが、実行速度に影響をあたえずに簡単に調べる方法があります。

です。
このメソッドは空きメモリの量をlongで返します。
オブジェクトごとやクラスごとの消費量といった細かいデータがほしいときには使えませんが、
とにかく簡単にメモリの空き容量をログに出したいときには便利です。

Runtime#freeMemory()は次のように使います。

MemoryTest.java
public class MemoryTest {
    public static void main(String[] args) throws IOException {
        List<String> list = new ArrayList<>();

        for (int i = 0; i < 10000000; i++) {
            list.add(new String());
            if (i % 1000 == 0) {
                System.out.println(Runtime.getRuntime().freeMemory());
            }
        }
    }
}

このプログラムを実行すると、徐々にGCが走ってもほとんどメモリが空かなくなってゆき最後にはOOMが発生する様子を観察することができます

22
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
22