摘要:
在最近一个项目中,在项目发布之后,发现系统中有内存泄漏问题。表象是堆内存随着系统的运行时间缓慢增长,一直没有办法通过gc来回收,最终于导致堆内存耗尽,内存溢出。开始是怀疑ThreadLocal的问题,因为在项目中,大量使用了线程的ThreadLocal保存线程上下文信息,在正常情况下,在线程开始的时候设置线程变量,在线程结束的时候,需要清除线程上下文信息,如果线程变量没有清除,会导致线程中保存的对象无法释放。从这个正常的情况来看,假设没有清除线程上下文变量,那么在线程结束的时候(线程销毁),线程上下文变量所占用的内存会随着线程的销毁而被回收。至少从程序设计者角度来看,应该如此。实际情况下是怎么 阅读全文
公告
最新评论
- 1. Re:程序员不能一直停留在爱学习的阶段
- @迎风唱情歌 没太听懂...
- --xiaomi洲
- 2. Re:为什么选择博客园
赞
- --Tynam.Yang
- 3. Re:为什么选择博客园
楼主说的很好,赞一个!
- --kx的博客
- 4. Re:程序员不能一直停留在爱学习的阶段
支持一个
- --孙悟猪
- 5. Re:程序员不能一直停留在爱学习的阶段
- @猫叔玩流量 @程序诗人 是的,但是不能一直以学习为目标,以完成别人的任务为目标。 所以我觉得标题应该是程序员不能一直停留在低质量爱学习的阶段...
- --程序诗人
- 6. Re:程序员不能一直停留在爱学习的阶段
- @程序诗人 是的,但是不能一直以学习为目标,以完成别人的任务为目标。...
- --猫叔玩流量
- 7. Re:程序员不能一直停留在爱学习的阶段
程序员最大的能力,就是快速学习的能力,切入到新领域,能够在数周或者数月能有产出。这也是保持核心竞争力的关键。到你这里怎么啥都不是了呢
- --程序诗人
- 8. Re:程序员不能一直停留在爱学习的阶段
只想做个纯粹的程序员
- --rookie丶
- 9. Re:程序员不能一直停留在爱学习的阶段
做任何产品最重要的是快速上线第一个版本,试探市场反应,要不然拖得时间太长就不了了之了
- --Null Pointer
- 10. Re:程序员不能一直停留在爱学习的阶段
- “如果你以拿结果的思维去看一些事情,技术的牛逼与否仅仅是其中的一个环节。很多时候,我们说自己爱学习,其实是给自己找了一个不去拿结果的借口。因为拿结果太难了,并且很多时候都会面临失败。当我们害怕失败的时...
- --吴潇轩