在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候...
分类:
编程语言 时间:
2014-12-08 22:38:30
阅读次数:
207
上一篇总结GC的基础算法,各种GC收集器的基本原理,还是比较粗粒度的概念。这篇会整理一些GC的常见概念,理解了这些概念,相信对GC有更加深入的理解
1. 什么时候会触发Minor GC?
Eden区域满了,或者新创建的对象大小 > Eden所剩空间 CMS设置了CMSScavengeBeforeRemark参数,这样在CMS的Remark之前会先做一次Minor GC...
分类:
其他好文 时间:
2014-12-08 15:42:02
阅读次数:
236
这篇博文介绍了Linkedin信息流中间层Feed Mixer,在Feed Mixer里面用到了一个叫做SPR(念“super”)的库。博文讲的就是如何优化SPR的java代码。最终的优化结果就是SPR的内存占用减少了75%,进而将feed-mixer的内存占用减少了 50% 。这些优化减少了对象的生成,进而减少了GC得频率,整个服务的延迟就减少了25%。...
分类:
编程语言 时间:
2014-12-08 00:53:18
阅读次数:
275
什么是内存泄露?广义的Memory Leak:应用占用了内存,但是不再使用(包括不能使用)该部分内存狭义的Memory Leak:应用分配了内存,但是不能再获取该部分内存的引用(对于Java,也不能被GC)一个具体的例子:应用创建了一个长时间运行的Thread该Thread使用ClassLoader...
分类:
编程语言 时间:
2014-12-07 23:11:53
阅读次数:
221
判断哪些对象可回收GC是通过对象是否存活来决定是否进行回收,判断对象是否存活主要有两种算法:引用计数算法、可达性分析算法引用计数算法引用计数的算法原理是给对象添加一个引用计数器,每被引用一次计数器加1,引用失效时减1,当计数器0后表示对象不在被引用,可以被回收了,引用计数法简单高效,但是存在对象之间...
分类:
其他好文 时间:
2014-12-07 21:31:01
阅读次数:
188
与网络打交道在GS,GC,Share都与网络打交道,但还是GC最多GC打交道过程send_stat BaseChannel::SendCmdTry(){ if (!m_queCmd.size()) return send_stat::send_succeed; for(;;...
分类:
其他好文 时间:
2014-12-07 14:57:33
阅读次数:
154
1 概述1.1 引入泛型方法 在某些情况下,一个类型中可能只有少数方法成员用到了类型参数,这时就未必需要将整个类型都定义成为泛型。例如在下面的代码中,泛型类GC定义了一个静态方法Contain,用于判断一个元素是否存在于一个数组之中:public class GC{ //静态字段 st...
分类:
其他好文 时间:
2014-12-07 11:16:17
阅读次数:
250
GS给客户单发包以及m_queGcWait(所有GC共享)send_stat BaseChannel::SendCmd(int nCmd, void* pData, int nLen){ Protocol Ptl; Ptl.cmd_type = nCmd; Ptl.conte...
分类:
其他好文 时间:
2014-12-05 22:40:06
阅读次数:
133
摘要:
本文是对Sangmin Lee的Becoming a java GC Expertor文章的翻译、水平有限、有不到之处还请见谅。主要目的是分享GC相关的知识、也是加深自己的理解。毕竟如果想要翻译好、首先要做的是自己要理解。...
分类:
编程语言 时间:
2014-12-05 21:18:29
阅读次数:
339
这是“成为Java GC专家”系列的第五篇文章。在第一篇深入浅出Java垃圾回收机制中,我们已经学习了不同的GC算法流程、GC的工作原理、新生代(Young Generation)和老年代(Old Generation)的概念。你应该了解了J...
分类:
编程语言 时间:
2014-12-05 19:51:33
阅读次数:
325