社区
Java SE
帖子详情
java的垃圾收集器能不能信任?
zone2000
2003-03-27 10:06:18
rt,哎,我的程序三天就能把1G的内存用尽,可我实在找不到问题所在呀....
...全文
44
15
打赏
收藏
java的垃圾收集器能不能信任?
rt,哎,我的程序三天就能把1G的内存用尽,可我实在找不到问题所在呀....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mem_fox
2003-03-28
打赏
举报
回复
应该是你程序的问题,最简单的就是流文件用了不关
hui_hui_lin
2003-03-28
打赏
举报
回复
关键还是在所编写代码的质量
xiaohaiz
2003-03-28
打赏
举报
回复
kinhope(java兵) 误解了,"实时"和"定时"是两个概念.
spyer
2003-03-27
打赏
举报
回复
支持楼上的意见。
xiaohaiz
2003-03-27
打赏
举报
回复
语言之间的优劣在这些问题上不是关键因素.关键是人为的原因.再好的语言教到不会用的人手中,也写不出好程序.这点道理大家都明白啊.所以关键还是检查自己的设计和编码.
flyingbugs
2003-03-27
打赏
举报
回复
还是C#好
xiaohaiz
2003-03-27
打赏
举报
回复
Java的垃圾回收机制是一种可靠的机制,这点我们首先不怀疑.
其次,对于Java语言编写的程序是否存在MLK(Memory Leak)呢?答案是肯定的,严格的说,Java中不叫内存泄漏,更准确点叫做"无意识的对象保留".意思就是一些本来应该生命周期结束的对象确一直有引用保存,那么GC当然不会回收这些对象了.
再回头看看你的例子,1G的内存被渐渐吃光,所以我觉得存在这种MLK的情况可能存在.
下面我们来看看一些建议如何来解决你的问题.
问题最容易出在什么地方?是在内存由你自己来管理的地方,比如你自己做的推栈,缓存或者对象池这类自己维护内存的地方是非常容易出错的.所以建议你先检查程序的这些地方.看看是否存在应该释放的对象而没有释放.
其次,还有一种情况也是经常容易发生的.从你的描述来看,你的程序连续运行3天,我们可以认为是连续运行的,如果在连续运行的程序中你不断创建大量的细粒度的对象也会导致内存的不断消耗.对于这样的情况,你可以参见Flyweight Pattern,把对象internal state和external state区分开,使用共享的方式就可以解决这类的问题.
这些意见仅供参考.
boymice
2003-03-27
打赏
举报
回复
如果java中设仆个手动的垃极回收就好了。
hellomartin
2003-03-27
打赏
举报
回复
可能大一点的程序就不能满足要求了!不知可不可以定期调用垃圾收集!?
Patrick_DK
2003-03-27
打赏
举报
回复
用JProbe对你的程序进行监测,看看问题出在哪个地方
lazywolf
2003-03-27
打赏
举报
回复
当然可以
rhj_2001
2003-03-27
打赏
举报
回复
考虑到多用一些设计模式了,比如Singleton模式,MVC模式等,注意尽量少的new对象,有些对象是无状态对象,其实可以反复利用的,而不用去新建,减少内存开支。
kinhope
2003-03-27
打赏
举报
回复
java 是多线程的,每个程序一旦开始,至少有两个线程在运行,一个是main 入口,一个就是垃圾回收,
所以 垃圾回收 是实时的。
xiaohaiz
2003-03-27
打赏
举报
回复
定时收集何解?Java的GC线程本身就是定时收集.正常情况下,不推荐做手工的垃圾回收.
关键还是在程序本身的原因.我们曾经经历过一个项目,优化之后的情况下,垃圾回收线程每天才运行一次.另外也有一个反例,至今未解,GC在1分钟之内运行了1500次.
所以还是信任Java自己的GC,把主要的精力放在code review上面吧.
shine333
2003-03-27
打赏
举报
回复
定时收集
一文彻底搞懂八种JVM垃圾回收器
随着硬件技术的发展,可用内存越来越大,这为应用程序提供了更多的内存空间,从而能够创建更多的对象,减少了垃圾收集的频率。ZGC 的出现为
Java
应用提供了一种更加高效、可预测的垃圾回收解决方案,与传统的垃圾...
三、
Java
10 新特性
作为当今使用最广泛的编程语言之一的
Java
在 2018 年 3 月 21 日发布了第十个大版本。为了更快地迭代、更好地跟进社区反馈,
Java
...除此之外,还有其他包括
垃圾收集器
改善、GC 改进、性能提升、线程管控等一批新特性。
一百五十个终极
Java
经典面试题(你会多少题?)
在接下来的部分中,我们将讨论有关面向对象编程及其特性的
Java
面试问题、有关
Java
及其功能的一般问题、
Java
中的集合、
垃圾收集器
、异常处理、
Java
小程序、Swing、JDBC、远程方法调用 (RMI) 、Servlet 和 JSP。...
python垃圾回收器库_Python的內存管理以及垃圾回收
參考:http://www.cnblogs.com/CBDoctor/p/3781078.html先從較淺的層面來說,Python的內存管理機制可以從三個方面來講(1)垃圾回收(2)引用計數(3)內存池機制一、垃圾回收:python不像C++,
Java
等語言一樣,他們可以...
java
异常处理试题答案_
Java
面试题和答案 - (下)
第一篇讨论了面向对象编程和它的特点,关于
Java
和它的功能的常见问题,
Java
的集合类,
垃圾收集器
,本章主要讨论异常处理,
Java
小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。异常处理
Java
小应用程序...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章