作者sbrhsieh (sbr)
看板java
标题Re: [问题] JAVA String
时间Sat Jan 24 16:50:14 2009
※ 引述《garywine1201 (那是啥)》之铭言:
: 一般而言jvm会在某段时间过後对於记忆体进行清理
: 但其清理的是程式在jvm中占用的记忆体量
: 而非jvm在OS下的记忆体占用量
: 可以看一下这边对於gc()函式的实验
: http://www.devdaily.com/java/edu/pj/pj010008/pj010008.shtml
: 摘录最後实验结果
: free memory before creating array: 4054912
: free memory after creating array: 3852496
: free memory after running gc(): 4064184
: 在实验开始之前,jvm可用记忆体为4054912
: 这边指的是jvm在OS当中的占用量
: 实验开始之後,jvm的记忆体配置为3852496
: 但重新释放之後却使得记忆体可用为4064184
: 这边会发现jvm多吃了OS一些空间
从这些数据怎麽可以推论出 JVM 从 OS 获得更多的记忆体空间?
这个测试程式执行 step 2 的时候,并不表示此时 JVM 管理的 heap 是 garbage-
free,所以等到 step 5 之後 available heap 空间变多,不代表 JVM 向 OS 索取
更多的记忆体。
: 因此对jvm进行free这个动作,并不会减少其耗用OS的资源能力
: 因为jvm是自行控管记忆体配置的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.140.84