说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Runtime.getRuntime().freeMemory()/maxMemory() 内存问题

编辑:说三道四文库 发布时间:2018-06-23 02:20
HTML文档下载 WORD文档下载 PDF文档下载
我想得到计算机的物理内存,当java程序用的内存大意60%的时候就调用垃圾回收器.
但不明白下边几个参数的含义:

Runtime.getRuntime().maxMemory()
Runtime.getRuntime().freeMemory()
Runtime.getRuntime().totalMemory()

运行了一下得到如下结果—————————————————
maxMemory  :134217728
freeMemory :1802328
totalMemory:13303808
-----------------------
maxMemory  :134217728
freeMemory :7814704
totalMemory:16728064
--------------------------
问题:我的计算机是256的maxMemory却是134217728
freeMemory ,totalMemory 是怎么计算的
你设定的Java的可用内存是多少??

我觉得你应该不要过多干预Java的GC过程,60%可能不是个好选择。
定的Java的可用内: 无限制

60%只是打个比方,我会找一个相对比较好的比值.

intelliJ ide 感觉就是这样做的。
大家对下边的答案感觉对不对?

maxMemory  :134217728   java最大可用内存
freeMemory :7814704     当前????内存
totalMemory:16728064    当前使用的内存
maxmemory是指总的可用物理内存减掉系统所占用的内存所得;
freeMemory() 
          Returns the amount of free memory in the Java Virtual Machine.

maxMemory() 
          Returns the maximum amount of memory that the Java virtual machine will attempt to use.

totalMemory() 
          Returns the total amount of memory in the Java virtual machine.
我就是英文不好啊!

free  Memory()   free 是 自由的,还是可用的,还是可释放的???
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘