谈谈System.gc()的利与弊!

Edwin603 2009-06-04 09:40:05
请各位老鸟说下这个方法的好出与坏处,什么情况用比较好!
...全文
769 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyun2023 2009-06-07
  • 打赏
  • 举报
回复
不怎么了解。
四十三号 2009-06-07
  • 打赏
  • 举报
回复
不可靠的东西
Edwin603 2009-06-07
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 luxing44530 的回复:]
其实Java中没有任何机制保证程序能强制执行垃圾回收,gc()不行,其他任何方法都不行。
调用gc()只能告诉jvm说,我想现在运行垃圾回收,而jvm究竟什么时间进行,那是jvm自己的事,程序无权干涉
[/Quote]
.... 这个方法就是手动来回收和C++的思想一致! 汗死
你的说法实在难以认同!
lulu0126 2009-06-07
  • 打赏
  • 举报
回复
学习了 谢谢
小_Y 2009-06-07
  • 打赏
  • 举报
回复
其实Java中没有任何机制保证程序能强制执行垃圾回收,gc()不行,其他任何方法都不行。
调用gc()只能告诉jvm说,我想现在运行垃圾回收,而jvm究竟什么时间进行,那是jvm自己的事,程序无权干涉
Edwin603 2009-06-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lierenzhifeng 的回复:]
不建议手动调用垃圾回收机制,因为这个回收机制具有 不确定性。
建议让JVM自动管理。
使用者之需要设置JVM的堆栈大小就可以了,通过JVM的堆栈大小的调节,可以实现Java程序性能的调优,具体的可以Google一下。
[/Quote]
人生来有胳膊,因为他有用!如果人生来,上帝告诉他不建议你用胳膊,因为有不确定性!
那sun公司设计这个类的方法是否很多余?
我在想既然设计了!必然有用他的时候!我曾经想过如果我声称的对象里含有的内容如果很庞大,那当不用的时候,我是不是该用这个方法来主动的回收!
可是关键就是如果我对象很小那么该让jvm自动回收,可是楼上的这些解释我依然无法理解在用这个方法的时候,这个方法是如何给
jvm增加了多余的负担!这个过程我想了解下!
fhqiu13647166580 2009-06-05
  • 打赏
  • 举报
回复
public static void gc()运行垃圾回收器。
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
从说明可以知道用gc()时要加大内存消耗,增加CPU负担.所以该方法一般在对内存需求比较大时,考虑该方法,一般情况下不要使用.根据目前的内存容量来看,该方法一般不用.
jxst051665 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kingofvc 的回复:]
好处就是 垃圾可以自动回收了
坏处就是 垃圾真的被回收了吗?
[/Quote]

确实
swandragon 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lierenzhifeng 的回复:]
不建议手动调用垃圾回收机制,因为这个回收机制具有 不确定性。
建议让JVM自动管理。
使用者之需要设置JVM的堆栈大小就可以了,通过JVM的堆栈大小的调节,可以实现Java程序性能的调优,具体的可以Google一下。
[/Quote]
同意
lierenzhifeng 2009-06-05
  • 打赏
  • 举报
回复
不建议手动调用垃圾回收机制,因为这个回收机制具有 不确定性。
建议让JVM自动管理。
使用者之需要设置JVM的堆栈大小就可以了,通过JVM的堆栈大小的调节,可以实现Java程序性能的调优,具体的可以Google一下。
tfsict2008 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Edwin603 的回复:]
引用 5 楼 kingofvc 的回复:
好处就是 垃圾可以自动回收了
坏处就是 垃圾真的被回收了吗?


既然不能保证垃圾真的被回收那这个方法存在的价值是什么
[/Quote]
价值就是建议回收,给个建议而已!
Edwin603 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kingofvc 的回复:]
好处就是 垃圾可以自动回收了
坏处就是 垃圾真的被回收了吗?
[/Quote]
既然不能保证垃圾真的被回收那这个方法存在的价值是什么
Edwin603 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Mailbomb 的回复:]
偶尔调用一下会优化内存,调用的太频繁会严重降低系统的执行效率。
[/Quote]
请具体分析下!
网络咖啡 2009-06-04
  • 打赏
  • 举报
回复
偶尔调用一下会优化内存,调用的太频繁会严重降低系统的执行效率。
dieyingao 2009-06-04
  • 打赏
  • 举报
回复
标记下,希望有达人来给个详细的解释
zdsonline 2009-06-04
  • 打赏
  • 举报
回复
不太了解 ,关注下
kingofvc 2009-06-04
  • 打赏
  • 举报
回复
好处就是 垃圾可以自动回收了
坏处就是 垃圾真的被回收了吗?
Edwin603 2009-06-04
  • 打赏
  • 举报
回复
继续等人来回答!
weiluo12 2009-06-04
  • 打赏
  • 举报
回复
一旦一个对象不被其他任何对象引用的时候,它就变成可回收的对象了。
你可以使用System.gc()来建议垃圾回收器收集垃圾,但是这并不能保证执行。
x-teamer团队 2009-06-04
  • 打赏
  • 举报
回复
顶一下, 了解不多, 不敢妄语

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧