精华内容
下载资源
问答
  • jvm优化

    2019-12-25 11:46:08
    jvm优化 为什么要jvm优化 jvm 如何优化

    jvm优化

    为什么要jvm优化

    jvm 如何优化

    展开全文
  • JVM优化

    2021-02-04 14:19:38
    1.什么情况需要做JVM优化? jvm 运行参数 标准参数 -help -version -X参数(非标准参数) -Xint -Xcomp -XX参数 -XX:newSize -XX:+UseSerialGC

    1.什么情况需要做JVM优化?

    jvm 运行参数

    标准参数

    • -help
    • -version

    -X参数(非标准参数)

    • -Xint
    • -Xcomp

    -XX参数

    • -XX:newSize
    • -XX:+UseSerialGC

    jvm 工具命令

    # 查看java进程
    jps -l
    # 查看程序jvm参数
    jinfo -flag <进程id>
    # 查看类加载编译
    jstat -class <id>
    jstat -compiler <id>
    jstat -gc <id>
    # 查看内存使用情况
    jmap -heap <id>
    # 查看对象数量
    jmap -histo <pid> | more
    jmap -histo:live <pid> | more
    # 将内存的使用情况dump到文件
    jmap -dump:format=b,file=/test/dump.dat 1613
    # jhat 对dump进行分析
    jhat -port <port> <file>
    # jstack 使用,查看进程中线程使用情况
    jstack <pid>
    

    eclipse mat 工具分析dump

    线程的状态

    在这里插入图片描述

    VisualVM工具使用

    展开全文
  • Jvm优化

    2013-11-30 18:58:11
    1. Heap设定与垃圾回收 Java Heap分为3个区:Young,Old和Permanent。 Young保存刚实例化的对象,当该区被...JVM的Heap分配可以使用-X参数设定, -Xms 初始Heap大小 -Xmx java heap最大值 -Xmn
    1. Heap设定与垃圾回收
    Java Heap分为3个区:Young,Old和Permanent。
    Young保存刚实例化的对象,当该区被填满时,GC会将对象移到Old区。
    Permanent区则负责保存反射对象,本文不讨论该区。
    JVM的Heap分配可以使用-X参数设定,
    -Xms 初始Heap大小
    -Xmx java heap最大值
    -Xmn young generation的heap大小

    JVM有2个GC线程。第一个线程负责回收Heap的Young区。第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区。Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。

    为什么一些程序频繁发生GC?有如下原因:
    l         程序内调用了System.gc()或Runtime.gc()。
    l         一些中间件软件调用自己的GC方法,此时需要设置参数禁止这些GC。
    l         Java的Heap太小,一般默认的Heap值都很小。
    l         频繁实例化对象,Release对象。此时尽量保存并重用对象,例如使用StringBuffer()和String()。
    如果你发现每次GC后,Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态。许多Server端的Java程序每次GC后最好能有65%的剩余空间。
    经验之谈:
    1  Server  JVM 最好将 -Xms  -Xmx 设为相同值。为了优化 GC ,最好让 -Xmn 值约等于 -Xmx  1/3[2] 
    2 .一个 GUI 程序最好是每 10  20 秒间运行一次 GC ,每次在半秒之内完成 [2] 
     
    注意:
    1.增加Heap的大小虽然会降低GC的频率,但也增加了每次GC的时间。并且GC运行时,所有的用户线程将暂停,也就是GC期间,Java应用程序不做任何工作。
    2.Heap大小并不决定进程的内存使用量。进程的内存使用量要大于-Xmx定义的值,因为Java为其他任务分配内存,例如每个线程的Stack等。
     
    2.Stack的设定
    每个线程都有他自己的Stack。
    -Xss 每个线程的 Stack 大小
    Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。
    3.硬件环境
    硬件环境也影响GC的效率,例如机器的种类,内存,swap空间,和CPU的数量。
    如果你的程序需要频繁创建很多transient( 短暂的)对象,会导致JVM频繁GC。这种情况你可以增加机器的内存,来减少Swap空间的使用[2]。
    4.4种GC
    第一种为单线程GC,也是默认的GC。,该GC适用于单CPU机器。
    第二种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。第二种GC与第一种GC相似,不同在于GC在收集Young区是多线程的,但在Old区和第一种一样,仍然采用单线程。-XX:+UseParallelGC参数启动该GC。
    第三种为Concurrent Low Pause GC,类似于第一种,适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。
    第四种为Incremental Low Pause GC,适用于要求缩短因GC造成程序停滞的时间。这种GC可以在Young区回收的同时,回收一部分Old区对象。-Xincgc参数启动该GC。
    4种GC的具体描述参见[3]。
     
    参考文章:
    2. Performance tuning Java: Tuning steps
    3. Tuning Garbage Collection with the 1.4.2 JavaTM Virtual Machine .
    展开全文
  • JVM优化.docx

    2021-01-31 14:46:40
    java 的jvm 优化的一些知识
  • JVM虚拟机----jvm优化

    2019-09-25 13:55:40
    jvm优化

    jvm优化

    展开全文
  • - 了解下我们为什么要学习JVM优化 - 掌握jvm的运行参数以及参数的设置 - 掌握jvm的内存模型(堆内存) - 掌握jamp命令的使用以及通过MAT工具进行分析 - 掌握定位分析内存溢出的方法 - 掌握jstack命令的使用 - 掌握...
  • jvm优化.md

    2019-07-30 11:09:11
    jvm优化 为什么要jvm优化 jvm 如何优化
  • 【JVM虚拟机】JVM优化

    2020-04-07 20:48:02
    文章目录JVM优化原则:GC优化的目的:一般步骤为:1、监控GC的状态2、分析结果,判断是否需要优化3、调整GC类型和内存分配4、不断的分析的调整5、全面应用参数常见问题定位过程(频繁GC问题或内存溢出问题)死锁问题...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,674
精华内容 5,869
关键字:

jvm优化