根据以下Xusage.txt中的说明:
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
Java -Xms512M 应该为Java分配至少512M的内存,但是在Linux中用TOP查看,其RSS和SIZE的值远小于512M。我的理解是Java向操作系统申请内存时,用的是mmap2或者old_mmap系统调用,这两个系统调用其实都没有真正分配物理内存,而仅仅是分配了虚拟内存。所以预先分配的这些内存要到实际使用时才能落实到位。