Java虚拟机
Neo
这个作者很懒,什么都没留下…
展开
-
2021-04-06 GC调优记录
机器配置: 8C 16G设置GC参数一、采用CMS-Xmx6144m -Xms6144m //整个堆内存 6G-Xmn4096m // 年轻代 4G-Xss128k // 线程栈的大小-XX:SurvivorRatio=6 // 设置年轻代中 Eden 和 Survivor区的比值,6 表示 6:2:2新生代 4G:Eden- 2458M, S0: 819M , S1: 819M-XX:MaxPermSize=512m-XX:ParallelGCThreads=8...原创 2021-04-06 11:46:52 · 338 阅读 · 0 评论 -
JVM 参数汇总
-Xmx-Xss-XX:PermSize-XX:MaxPerSize原创 2017-07-27 14:00:06 · 369 阅读 · 0 评论 -
JVM- 类加载过程
1、类加载过程 1)、加载 a)、类的信息加载到方法区。 b)、类对象放在堆里。 2)、链接 a)、验证:文件格式,元数据,字节码,符号引用。 符号引用转为直接引用。 b)、准备: 为静态变量分配内存(方法区)。并初始化成默认值元数据验证。 c)、解析: 常量池中的符号引用替换为直接引...原创 2017-12-11 00:00:52 · 274 阅读 · 0 评论 -
Java 性能调优
一、CPU使用率: 可分为两类: 用户态时间:CPU执行应用代码所占时间的百分比。 系统态时间:CPU执行内核代码所占的时间百分比。 性能调优的目的: 在尽可能端的时间内让CPU使用率尽可能高。(该如何理解?) Linux上的命令:vmstat 1二、JVM常用调优工具: 1、 jmap -- histo <PID> >...原创 2018-05-01 22:37:31 · 272 阅读 · 0 评论 -
Java 虚拟机内存模型
一、JVM组成:程序计数器虚拟机栈本地方法栈Java堆Java堆方法区1、程序计数器:每一个线程有一个独立的程序计数器,用于记录下一条要运行的指令。各个线程之间的计数器互不影响,独立工作,是一块线程私有的内存空间。如果当前线程正在执行一个Java 方法,程序计数器记录正在执行的 Java 字节码地址。如果当前线程正在执行一个Native 方法,则程序计数器为空。2、Java 虚拟机栈: 也是线程私...原创 2018-06-02 22:53:35 · 247 阅读 · 0 评论 -
垃圾回收算法与思想
1、应用计数法2、标记-清除算法3、复制算法。4、标记压缩算法5、增量算法。转载 2018-06-06 22:59:00 · 273 阅读 · 0 评论 -
性能能优化的一般思路
1、有明确的性能指标,比如 qps 等,清楚的指出优化的对象和最终目标。2、需要在目标平台对软件进行测试,通过各种性能监控和统计工具,观测和确认是否达到相关指标。 若未达到优化目标,则需要查找当前的性能瓶颈。3、可能称为瓶颈的因素:磁盘 I/O, 网络 I/O,CPU,内存。4、找到瓶颈后,首先需要定位相关代码,确认是否在软件实现上存在问题或优化空间。若有,则进行代码优化; 若...转载 2018-06-28 11:56:40 · 348 阅读 · 0 评论 -
垃圾收集器
1、Serial (串行)收集器:单线程收集器,会停掉应用程序的线程。程序会假死新生代复制算法,老年代采用标记-整理算法。2、ParNew收集器:多线程收集器,还是会停止应用程序的线程3、Parallel Scavenge (JDK8 默认):Server 模式,内存大于2个G,2个cpu,关注点事吞吐量,高效率的利用CPUCMS关注点事用户线程的停顿时间(提高用户体验)吞吐量:...原创 2018-10-24 22:20:56 · 175 阅读 · 0 评论