os::free_memory(char *addr, size_t bytes)

  • 引数で渡されたアドレス範囲のメモリを解放する
    • 厳密に言うと”解放して良い”というヒントをカーネルに与える
//Linux版(jdk7/hotspot/src/os/linux/vm/os_linux.cpp)
void os::free_memory(char *addr, size_t bytes) {

  //glibcのmadviseを呼び出す
  //詳細 -> http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/madvise.2.html
  ::madvise(addr, bytes, MADV_DONTNEED);
}