虚拟机(系列一)
xinjing_wangtao
这个作者很懒,什么都没留下…
展开
-
JVM总结(一)
Jvm实战Jvm运行时程序计数器:Jvm进程内每个线程私有,记录当前线程中字节码执行的行号.以便于线程上下文切换.java虚拟机栈:一个线程中每个方法执行的时候都会创建一个栈帧(stack frame)用来存储局部变量表,操作栈,动态链接等.方法调用直至完成对应着一个栈帧在虚拟机栈中的出入栈.局部变量表所需的内存空间是在编译期间完成分配的.局部变量表中存转载 2016-08-21 11:32:13 · 230 阅读 · 0 评论 -
JVM-GC总结—基本概念篇
Java运行时,程序计数器,虚拟机栈和本地方法栈随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出有条不紊的进行着出栈和入栈.每一个栈帧中分配多少内存是在编译器决定了.这几个区域的内存分配和回收都具有确定性,所以这几个区域都不用过多考虑回收的问题.java的垃圾回收关注的是java堆和方法区的内存. 一些概念数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用转载 2016-08-21 11:32:37 · 634 阅读 · 0 评论 -
JVM-GC总结-算法
垃圾收集器对堆进行回收前,会先确定对象是在存活还是已经死去下面是俩种判定对象是否存活的算法.对象存活算法引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能在被使用的.此算法的问题是无法解决对象之间循环引用的问题.根搜索算法主流的编程语言都是使用根搜索算法(GC Roots转载 2016-08-21 11:33:00 · 264 阅读 · 0 评论 -
JVM-GC总结-垃圾收集器
HotSpot虚拟机包含的收集器:有连接线的代表可以再jdk1.6下搭配使用.串行收集器Serial收集器参数: -XX:UseSerialGC单线程处理所有垃圾回收,效率比较高,但是无法发挥多处理器的优势,适合单处理器机器并且内存较小(几十兆到一俩百)的情况下.Serial Old收集器Serial收集器的老年代版本,同样是一个单线程收转载 2016-08-21 11:33:30 · 240 阅读 · 0 评论 -
JVM-GC总结-分代垃圾回收详解--第一发
为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的 Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要 是程序运行过程中生转载 2016-08-21 11:34:01 · 1548 阅读 · 0 评论 -
JVM-GC总结-配置实战--第二发
堆大小设置设置举例1:Java –Xmx3550m –Xmx3550m –Xmn2g –Xss128k 设置详解-Xmx3550m:设置JVM最大可用内存为3550M。 -Xms3550m:设置JVM初始内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 + 年老转载 2016-08-21 11:35:02 · 265 阅读 · 0 评论 -
JVM-GC总结-配置实战--第三发
配置举例1:vm args: -Xms60m -Xmx60m -XX:NewRatio=2 -XX:SurvivorRatio=3 -XX:MaxPermSize=30m -XX:MaxTenuringThreshold=3 -XX:+PrintHeapAtGC使用工具:jvisualvm (安装visual gc 插件) 根据设置堆内存为60m, 因为设置了-XX:N转载 2016-08-21 11:40:41 · 430 阅读 · 0 评论 -
java语法糖第一发
语法糖语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会;但是这种语法对语言的功能并没有影响。 Java中的泛型,变长参数,自动拆箱/装箱,条件编译等都是.各种各样的语言转载 2016-08-21 11:41:26 · 339 阅读 · 0 评论 -
JVM调优
Java(JVM)内存模型正如你从上面的图片看到的,JVM内存被分成多个独立的部分。广泛地说,JVM堆内存被分为两部分——年轻代(Young Generation)和老年代(Old Generation)。 年轻代年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。年轻代被分为3个部分——Enden区和两个Surv转载 2016-08-21 11:43:12 · 382 阅读 · 0 评论