咳咳, 不怎么用RUNTIME 现学现卖一下
这里面取得的memory是字节吗?是当前JVM的memory?
是JVM的MEMORY
一般JVM的memory有多少呢?
JVM的MEMORY有三个指标
最大使用量, 如果没有设定一般是64M
初期使用量, 如果没有设定则由JVM自己决定
线程堆栈用MEMORY, 这是JVM自身使用的MEMORY, 缺省为512K
还有在第二次r.gc()前如果不将someints置为空,进行gc(),JVM的memory也会增大,这是为什么?
someints是一组对象的参照, 在当前线程运行完毕之前JVM会认为这些对象不是垃圾, 而把参照设置成NULL之后, 对象没有了参照, 就成了垃圾, 被清理掉了
在启动JAVA的时候可以优化JVM
比如说,
java -Xmx256M -Xms128M -Xss128k ......
这样JAVA的最大许容内存就变成了128M
初期内存128M
而自用的部分128k
|