JVM_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> JVM >>列表
· JVM深入【转】发布时间:2015-03-09
转载自:http://wenku.baidu.com/view/70e45e8ba0116c175f0e4840.html1JVM简介JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“HelloWorld”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibernate等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时不时还来个内存溢出什么的... 查看全文
· java jvm 记录(二)发布时间:2015-02-26
jstat工具可以详细的显示出HotSpotVM的性能信息.目前SunJDK和OpenJDK中均使用了HotSpot技术,即热点代码探测技术。通过执行计数器找出最具有编译价值的代码,然后通知JIT编译器以方法为单位进行编译。如果一个方法被频繁调用,或方法中有效循环次数很多,将会分别触发标准编译和OSR(栈上替换)编译动作。通过编译器与解释器恰当地协同工作,可以在最优化的程序响应时间与最佳执行性能中取得平衡,而且无须等待本地代码输出才能执行程序,即时编译的时间压力也相对减小... 查看全文
· java jvm 记录(一)发布时间:2015-02-26
在第一篇中,我们来介绍查看jvm运行状态的一些工具。jpsjps用来查看当前系统中运行的java程序jps,使用默认参数的话,直接显示出java程序的pid(即vmid)和运行的程序名称。jps,使用-v参数,显示传入到jvm的参数.jcmdjcmd是jdk7中提供的新工具,可以获得比jps更多的信息.jcmd,使用默认参数,显示pid和类名称(或者jar名称)jcmd中最重要的是,使用jcmdpidhelp,可以查看jvm中允许jcmd获取哪些信息.如下面例子中,也可以直接使用类名称... 查看全文
· [转]JVM内存管理发布时间:2015-02-16
一、物理内存与虚拟内存1、物理内存(1)RAM所谓物理内存就是我们通常所说的RAM(随机存储器)。(2)寄存器在计算机中,还有一个存储单元叫寄存器,它用于存储计算单元执行指令(如浮点、整数等运算时)的中间结果。寄存器的大小决定了一次计算可使用的最大数值。(3)地址总线连接处理器和RAM或者处理器和寄存器的是地址总线,这个地址总线的宽度影响了物理地址的索引范围,因为总线的宽度决定了处理器一次可以从寄存器或者内存中获取多少个bit。同时也决定了处理器最大可以寻址的地址空间... 查看全文
· JVM帖子收藏及分类发布时间:2015-02-16
类加载:实现机制:Javainstanceof关键字是如何实现的?请教一个share/vm/oops下的代码做fastsubtypecheck的问题GC:内存分配:并发:调优:http://www.joelonsoftware.com/articles/LeakyAbstractions.htmljls:http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.20.2jvm的实现:https://github... 查看全文
· jvm对象分配及GC代码实例发布时间:2015-01-24
虚拟机采用的是HotSpot内核对象分配规则1.对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次MinorGC。2.大对象直接进入老年代(大对象是指需要大量连续内存空间的对象)。这样做的目的是避免在Eden区和两个Survivor区之间发生大量的内存拷贝。通过参数-XX:PretenureSizeThreshold=3145728控制。3.长期存活的对象进入老年代。虚拟机为每个对象定义了一个年龄计数器,对象每熬过了1次MinorGC对象的年龄加1,达到阀值对象进入老年区... 查看全文
学习JVM从http://blog.csdn.net/cutesource/article/details/5904501转载来的:从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习... 查看全文
转载自:http://blog.csdn.net/cutesource/article/details/5907418首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和JavaVisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和FullGC的次数... 查看全文
转载自:http://blog.csdn.net/cutesource/article/details/5904542Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示:Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件流程图如下所示... 查看全文
· JVM 并发性: 阻塞还是不阻塞?发布时间:2015-01-23
在任何并发性应用程序中,异步事件处理都至关重要。事件来源可能是不同的计算任务、I/O操作或与外部系统的交互。无论来源是什么,应用程序代码都必须跟踪事件,协调为响应事件而采取的操作。Java应用程序可采用两种基本的异步事件处理方法:该应用程序有一个协调线程等待事件,然后采取操作,或者事件可在完成时直接执行某项操作(通常采取执行应用程序所提供的代码的方式)。让线程等待事件的方法被称为阻塞方法。让事件执行操作、线程无需显式等待事件的方法被称为非阻塞方法。旧的java.util.concurrent... 查看全文
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习... 查看全文
http://it.deepinmind.com/jvm/2014/12/15/self-healing-jvm.html这里说了一个观点,叫做JVM的自愈能力,就是说JVM在遇到问题时会自己发现问题解决问题,举例如下:packageeu.plumbr.test;publicclassHealMe{privatestaticfinalintSIZE=(int)(Runtime.getRuntime().maxMemory()*0.6);publicstaticvoidmain... 查看全文
· jvm notes发布时间:2014-12-17
运行时数据区programcounterregister程序计数器java方法存正在执行的字节码指令地址native方法为空undefined每个线程有一个独立的规范没有规定ooMvmstack线程私有一个方法有一个stackframe存局部变量操作数栈动态链接方法出口方法调用压栈出栈如果线程请求的栈深度大于虚拟机允许的stackoverflowerror如果vmstack可以动态扩展扩展时无法申请到足够的内存OOMprivatestaticvoidoom(inti){while(i>1... 查看全文
上篇文章,散仙整理了关于JVM的运行时的数据区以及各个区域,本篇我们就来看下各个区域发生异常代码的实战代码,以便于大家更容易在实际应用找到感觉。1,JAVA堆溢出代码,需要设置JVM参数packagecom.test.jvm;importjava.util.ArrayList;importjava.util.List;/****堆异常**VM参数*-Xms20m-Xmx20m-XX:+HeapDumpOnOutOfMemoryError*-Xms20m-Xmx20m-XX... 查看全文
JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器,JVM屏蔽了JAVA和底层操作系统之间的复杂交互流程,从而大大简化了系统的复杂性。JVM通过抽象操作系统和CPU结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关,所以我们才称使用JAVA编写的程序或服务是跨平台的,这一点相对于微软的C#来说,不过前几日.NET阵营已经也开源了.NET服务架构,宣布支持了C#跨平台的特性... 查看全文
· jvm内存模型发布时间:2014-11-14
引言网上找到一篇讲jvm内存模型的文章,个人觉得讲得深度和广度都恰到好处,遂转之数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引用类型包括:类类型,接口类型和数组... 查看全文
· JVM-类的加载器深入剖析发布时间:2014-11-12
Java类加载器深入剖析本文章来源于网络教学视频内容。在如下的几种情况下,Java虚拟机将结束生命周期:-1.执行了System.exit()方法-2.程序正常执行结束-3.程序在执行过程中遇到了异常或者错误而异常终止-4.由于操作系统出现错误而导致Java虚拟机进程终止类的加载、链接与初始化-加载:查找并加载类的二进制数据-详细介绍:类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象... 查看全文
· JVM必备指南发布时间:2014-11-01
本文由ImportNew-xiafei翻译自anturis转自:http://www.importnew.com/13556.html简介Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码。更通俗地说,JVM是指对这个规范的具体实现。这种实现基于严格的指令集和全面的内存模型。另外,JVM也通常被形容为对软件运行时环境的实现。通常JVM实现主要指的是HotSpot... 查看全文
原文可能有更新,点击javaapplication项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc.server.gcInterval=3600000-Dsun.rmi.dgc.client... 查看全文
· JVM参数发布时间:2014-09-17
原文:http://blog.csdn.net/cpzhong/article/details/6831751-Xms768m-Xmx1280mjvm堆的最小值和最大值设置,一般设成相同值,避免频繁分配堆空间-XX:NewSize=128m-XX:MaxNewSize=128m年轻代最小值和最大值设置(年轻代设定了,年老代也就定了),也可以用参数-XX:NewRatio=4,年老代和年轻代的大小比,这里128m有点小了,官方建议的是heap的3/8,差不多280m-XX... 查看全文