1.jps可以理解成java进程的ps,也就是罗列出所有的正在运行的Java进程;
2.jstat 一个极强的一个VM监控工具;jstat
-gcutil pid 可以查看对应该id进程的gc所有状况,如下图:
下面解释一下各个字母表示的意思:
s0:如果了解JVM的童鞋,很清楚s0就是Java堆内存里的新生代的survivor space0的简称,所有该值指的是新生代s0的已使...
分类:
Web程序 时间:
2015-08-05 16:25:27
阅读次数:
145
jvm参数的设置-server:一定要作为第一个参数,在多个CPU时性能佳-xms:初始化堆内存的大小-xmx:最大堆内存的大小-xx:PermSize:永久内存区初始化大小-xx:MaxPermSize:永久内存区最大大小-xx:MaxNewSize:新生成池最大大小-Xss:每个线程的Stack大小xms,xmx,MaxNewSize是..
分类:
其他好文 时间:
2015-08-02 06:44:11
阅读次数:
106
1、Serial收集器曾经是虚拟机新生代收集的唯一选择,是一个单线程的收集器,在进行收集垃圾时,必须stop the world,它是虚拟机运行在Client模式下的默认新生代收集器。
2、Serial Old是Serial收集器的老年代版本,同样是单线程收集器,使用标记整理算法。
3、ParNew收集器是Serial收集器的多线程版本,许多运行在Server模式下的虚拟机中首选的新生代收集器...
分类:
编程语言 时间:
2015-07-31 22:03:47
阅读次数:
178
满打满算, 从好友推荐Golang至发文时, 使用Golang已经有1年多了. 这种时间对于C/C++ Java这些老者来说, 简直是菜鸟级别的经验但作为新生代语言的特点就是实战. Golang这一年里, 已经为项目提供了稳定的服务器和强大的扩展能力, 与客户端的Unity3D里的C#一样, 都是强...
分类:
其他好文 时间:
2015-07-30 01:57:25
阅读次数:
115
谁在帮助高富帅浇灌屌丝?谁在帮助屌丝逆袭成高富帅?背靠VC大佬,身在屌丝一线。他们就是中国新生代的投资人! 阅读原文: ithomer 这是创业邦连续第二年推出“40位40岁下面投资人”。入围者整体上有三个特点: 1,以早期投资为主; 2,以TMT领域居多; 3,都是长期活跃在投资一线、新一代...
分类:
其他好文 时间:
2015-07-25 18:11:57
阅读次数:
117
【收集算法的选择】 新生代,由于只有少量的对象能存活下来,所以选用“复制算法”,只需要付出少量存活对象的复制成本。 老年代,由于对象的存活率高,没有额外的空间分担,就必须使用“标记-清除”或“标记-整理”算法。 那么老年代也使用标记-复制策略吧?当然不行!老年代中的对象可不像新生代中的,每次回...
分类:
其他好文 时间:
2015-07-08 22:19:12
阅读次数:
139
方法区永久代,共享。类信息,常量,static变量,JIT编译后的代码。运行时常量池:字面量,符号引用。堆所有对象(新生代,老年代)虚拟机栈线程私有。表示方法执行的内存模型。【局部变量表】本地方法栈程序计数器字节码行号。线程私有。【Objectobj=newObject();】——Objectobj...
分类:
其他好文 时间:
2015-07-08 22:13:07
阅读次数:
138
1、对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次Minor GC。
2、大对象直接进入老年代(大对象是指需要大量连续内存空间的对象)。这样做的目的是避免在Eden区和两个
Survivor区之间发生大量的内存拷贝(新生代采用复制算法收集内存)。
3、长期存活的对象进入老年代。虚拟机为每个对象定义了一个年龄计数器,如果对象经过了1次Minor GC那么对象会...
分类:
编程语言 时间:
2015-07-03 09:12:46
阅读次数:
171
Full GC又称作Major GC,属于老年代GC,指发生在老年代的GC,相对这种GC的有新生代GC即Minor GC。出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的,Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情况触发JVM进行Full GC及应对策略。
1、System.gc()方法的调用
此方法的调用是建议JVM进行Fu...
分类:
其他好文 时间:
2015-07-01 10:08:38
阅读次数:
208
内存分配策略与回收策略
给对象分配内存以及回收给对象分配的内存。对象的内存分配绝大部分主要是在Java堆上,有一部分特殊的就是JIT编译器,经过JIT编译后被拆散为标量类型并间接地在栈上分配内存。
对象主要分配集中在新生代的Eden区,如果启动了本地线程分配缓冲,按照线程优先在TLAB上分配。少数分配在老年代,分配在哪里取决于当前使用的垃圾回收器组合和虚拟机中相关内存参数的设定。
...
分类:
其他好文 时间:
2015-06-30 10:48:24
阅读次数:
126