作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] Runtime.getRuntime() Memory 问题
时间Fri Mar 26 23:12:43 2010
※ 引述《duple (Bygones)》之铭言:
: Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()
: 这个方式,我有一点疑问,就是 如果我用两台不一样的电脑下去跑相同的程式
: 跑出来的memory数量其实不太相同。
: 我想请问,为什麽不同?
: 照理来说使用的记忆体应该差不多,是否在执行的时候配置跟os有关?
: total memory 我测过是一样的,但是freememory会改变,我想请问改变的原因是为何?
: 请各位解决我的疑惑,谢谢!!
: → tkcn:我不知道,但我想 JConsole 可以让你观察到更多东西 03/26 15:04
: → AmosYang:"请各位解决我的疑惑" <-- LOL XD 03/26 15:12
: 推 PsMonkey:那个 freeMemory() 的说明有仔细看吗? 03/26 16:12
: → duple:请问楼上freememory 不是未使用的空间吗? 03/26 17:02
请注意,大小写是有别的,你写 freememory 是错字,基本上也算犯了版规
http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html#freeMemory()
Returns the amount of free memory in the Java Virtual Machine.
Calling the gc method may result in increasing the value
returned by freeMemory.
不用说不同台电脑
我以前用同一台电脑玩这东西,都会得到不同的数字
JVM 什麽时候 GC 是没办法预测的(理论上)
甚至会觉得 GC 的结果也无法预测(这有点像是上面那句的结果)
所以也就更不用讲 freeMemory() 的东西也只能参考用
====
JVM 完全不熟,有错还请指点
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.70.183.120
1F:推 duple:我也不熟,感谢你的回答~ 04/09 20:01