JVM
Java海洋
从事JAVA 开发,大数据开发10多年,目前在一家互联网公司做技术负责人
展开
-
JVM性能优化1
Java体系结构由四个不同却又相互关联的部分组成:(语言本身、class文件格式、JavaAPI库和JVM)。当执行一个Java程序时,源代码是用Java语言写成,它被编译成class文件格式,运行在JVM中。同时,Java程序调用JavaAPI库的方法,访问系统资源。JVM和JavaAPI库形成了编译和运行环境,就叫做Java平台。JVM是基于堆栈的(stack-based),而不象汇编语言是基转载 2013-07-10 15:06:22 · 931 阅读 · 0 评论 -
JConsole使用手册详解
一篇Sun项目主页上介绍JConsole使用的文章,前段时间性能测试的时候大概翻译了一下以便学习,今天整理一下发上来,有些地方也不知道怎么翻,就保留了原文,可能还好理解点,呵呵,水平有限,翻的不好,大家多多包涵。JConsole毕竟是JDK自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且,提供了相对全面的系统监控功能,还是值得一用的。原创 2014-07-04 16:09:30 · 47755 阅读 · 1 评论 -
JVM调优工具之VisualVM介绍1
这时候要注意 Xmx和MaxPermSize的和 不要超过系统支持最大的jvm堆的大小,否则tomcat也无法启动。可以通过java -Xmx###M -version 来测试系统支持最大的jvm大小,如java -Xmx1280M -version,报错就不行,不报错xian原创 2014-07-04 17:31:49 · 9718 阅读 · 1 评论 -
JVM性能调优
最近因项目存在内存泄漏,故进行大规模的JVM性能调优,现把经验做一记录。一、JVM内存模型及垃圾收集算法1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:...转载 2014-07-20 15:25:25 · 60283 阅读 · 1 评论 -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
ava application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc.转载 2014-06-25 11:42:41 · 950 阅读 · 0 评论 -
JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发转载 2014-06-25 11:12:06 · 865 阅读 · 0 评论 -
tomcat内存和线程数配置
一、Tomcat的JVM提示内存溢出查看%TOMCAT_HOME%\logs文件夹下,日志文件是否有内存溢出错误二、修改Tomcat的JVM1、错误提示:java.lang.OutOfMemoryError: Java heap spaceTomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tom原创 2014-06-25 14:46:57 · 9571 阅读 · 0 评论 -
JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同转载 2014-06-25 11:40:57 · 1083 阅读 · 0 评论 -
JVM系列二:GC策略&内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenu转载 2014-06-25 11:39:24 · 947 阅读 · 0 评论 -
tomcat5.5 server文件配置详解
1.精简Tomcat和配置文件 1.删除不需要的管理应用和帮助应用,提高tomcat安全性。# 删除webapps下所有文件# rm –fr $CATALINA_HOME/webapps/*# 删除server/wenapps下所有文件# rm –fr $CATALINA_HOME/server/webapps/* 2.精简sever.xml配置文件使用tomc原创 2014-06-24 14:31:52 · 1437 阅读 · 0 评论 -
举例讲解JAVA中的堆和栈
Java中堆和堆栈的区别 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 (降低内存或者说是程序方面的内存泄露等问题出现的几率?)2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,转载 2014-05-03 22:20:56 · 2149 阅读 · 0 评论 -
JAVA中堆和栈的区别
先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)。2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身。栈区:1.每个线程包含一个栈区,栈中只保存基础数原创 2014-05-04 11:06:38 · 941 阅读 · 0 评论 -
JDK自带的监控分析工具JConsole
很多开发者觉得自己懂Java编程,事实是大多数开发人员都只领会到了Java平台的皮毛,所学也只够应付工作。作者将深度挖掘Java平台的核心功能,揭示一些鲜为人知的事实,帮助您解决最棘手的编程困难。 当应用程序性能受到损害时,大多数开发人员都惊慌失措,这在情理之中。跟踪Java应用程序瓶颈来源一直以来都是很麻烦的,因为Java虚拟机有黑盒效应,而且Java平台分析工具一贯就有缺陷。原创 2014-04-30 17:24:36 · 12827 阅读 · 0 评论 -
详细解读JVM中的对象生命周期(1)
在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)。上面的这7个阶段,构成了 JVM中对象的完整的生命周期。下面分别介绍对象在处于这7个阶段时的不同情形。 创建阶段转载 2014-03-11 21:23:25 · 1163 阅读 · 0 评论 -
JVM优化配置指导手册(1)
本文向大家简单介绍一下JVM优化配置的概念,通常情况下是不建议在没有任何统计和分析的情况下去手动配置JVM的参数来调整性能,因为在JVM5以上已经作了根据机器和OS的情况自动配置合适参数的算法,基本能够满足大部分的情况。JVM优化配置这里首先要说明的是这里提到的JVM是Sun的HotSpotJVM5和以上的版本。性能优化在应用方面可以有很多手段,包括Cache,多线程,各种算法等等转载 2013-07-12 11:00:10 · 1019 阅读 · 0 评论 -
JVM优化配置指导手册(2)
你知道如何配置JVM内存分配吗,这里和大家分享几个妙招,安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。一、配置JVM内存1.配置JVM内存的参数有四个:-XmxJavaHeap最大值,默认值为物理转载 2013-07-12 11:17:23 · 921 阅读 · 0 评论 -
JVM需要熟练掌握的知识点
第一周初识JVMJVM分类Java语言规范JVM规范介绍JVM的基本知识和发展历史,并介绍了Java语言规范和JVM规范。第二周JVM运行机制简介堆、栈、方法区等JVM启动流程内存模型和volatile实例解释和编译运行的概念介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。第三周常用JVM参数堆的分配参数原创 2014-11-20 16:00:36 · 2180 阅读 · 0 评论