
JVM
文章平均质量分 80
一句呵呵解千愁
你敢再逗比一点?
展开
-
JVM 运行时数据区域
java运行时数据区Java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,已经创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《java虚拟机规范(第二版)》的规定,java虚拟机锁管理的内存将会包括以下几个运行时数据区。1、程序计数器 程序计数器(P原创 2016-04-09 18:34:07 · 4426 阅读 · 0 评论 -
jvm可视化工具插件---Visual GC
Visual GC是一个java 垃圾收集的可视化工具一:整个区域分为三部分:spaces、graphs、histogram 1,spaces区域:代表虚拟机内存分布情况。从图中可以看出,虚拟机被分为Perm、Old、Eden、S0、S1 1.1)perm:英文叫做Permanent Generation,我们称之为永久代。(根据深入java虚拟机作者说明,这里说法不是不是很原创 2016-04-10 14:53:47 · 13271 阅读 · 2 评论 -
jvm GC收集器与内存分配策略
GC回收需要做的三个最基本问题:1、哪些对象需要回收?2、什么时候回收?3、如何回收?1,哪些对象需要回收? 1. 引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点是简单,高效,现在的objective-c用的就是这种算法。缺点是很难处理转载 2016-04-10 22:10:42 · 573 阅读 · 0 评论 -
生成内存溢出 demo
今天闲来无聊,写了几个内存溢出的demo。只要将内存设置的很小,生成的对象很多,GC无法回收便会出现内存溢出。下面是我设置的vmArgs-Xmx10m (最大堆内存)-Xms10m (初始堆内存)-Xmn5m (新生代堆内存,剩余的就是老年代=xmx-xmn)-XX:PermSize=5m (永久代初始内存)-XX:MaxPermSize=5m (永久代最大内存)-XX:S原创 2016-04-30 17:36:17 · 917 阅读 · 0 评论