
jvm调优
文章平均质量分 90
jaryle
这个作者很懒,什么都没留下…
展开
-
jvm性能调优都做了什么
JVM性能调优有很多设置,这个参考JVM参数即可.主要调优的目的:控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为控制JVM堆栈大小.一般来说,JVM在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小.同时,还要需要控制总的JVM大小避转载 2016-09-01 21:10:00 · 5394 阅读 · 1 评论 -
JVM调优
jvm工具jps显示系统中所有Hotspot虚拟机进程jstat收集Hotspot虚拟机各方面运行数据jstack显示虚拟机的线程栈信息jinfo显示虚拟机的配置信息jmap用于生成虚拟机的内存快照信息jvm内存结构左边蓝色是虚存(应用运行时额外使用的内存,主要是系统级线转载 2016-09-02 17:46:41 · 1242 阅读 · 0 评论 -
JVM GC算法 CMS 详解
前言CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生命周期的对象的应用。CMS是用于对tenured generation的回收,也就是年老代的回收转载 2016-09-03 10:07:45 · 481 阅读 · 0 评论 -
CMS(Concurrent Mark Sweep)收集器
CMS(Concurrent Mark Sweep)收集器C : ConcurrentM : 标记(marking)对象 :GC必须记住哪些对象可达,以便删除不可达的对象 S : 清除(sweeping) : 删除未标记的对象并释放它们的内存CMS是一种以最短停顿时间为目标的收集器,使用CMS并不能达到GC效率最高,但它尽可能降低GC时服务的停顿时间。使用标记原创 2016-09-04 18:05:52 · 2574 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露转载 2016-09-04 18:32:36 · 360 阅读 · 0 评论 -
使用Java VisualVM监控远程JVM
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可转载 2016-09-04 18:51:11 · 863 阅读 · 0 评论 -
JVM调优的GC日志
本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数。GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配模式。-XX:+PrintGC参数-XX:+PrintGC(或者-verbose:gc)开启了简单GC日志模式,为每一次新生代(young generation)的GC和每一次的Ful转载 2016-09-04 19:08:17 · 1067 阅读 · 0 评论 -
Java中的JavaCore/HeapDump文件及其分析方法(很重要)
产生时间Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下。有时致命问题发生后,Java应用不会死掉,还能继续运行;但有时致命问题发生,Java进程会死掉;为了能够保留Java应用发生致命错误前的运行状态,JVM在死掉前产生两个文件,分别为JavaCore及HeapDump文件。有何区别转载 2016-09-05 09:10:52 · 4739 阅读 · 0 评论 -
从jvm的角度来看java的多线程
最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天。决定把自己关于java多线程的所学整理成一篇文章,从最基础的为什么使用多线程,一直深入讲解到jvm底层的锁实现。多线程的目的为什么要使用多线程?可以简单的分两个方面来说:在多个cpu核心下,多线程的好处是显而易见的,不然多个cpu核心只跑转载 2017-02-06 16:35:28 · 1848 阅读 · 1 评论