深入理解java虚拟机读书笔记

深入理解java虚拟机读书笔记,第五章:调优案例分析与实战

2017-09-15  本文已影响0人  cremin

5.1概述

5.2案例分析

5.2.1高性能硬件上的程序部署

两种方式

通过64位JDK使用大内存

内存回收导致长时间停顿

现阶段,64位JDK的性能结果普遍低于32位JDK

需要保证程序稳定,因为产生堆栈溢出几乎无法产生堆转储快照,产生了也无法分析

由于指针膨胀、数据类型对齐补白等因素,64位消耗内存更大

通过若干个32位虚拟机建立逻辑集群来利用硬件资源

避免节点竞争全局资源,例如磁盘竞争

很难最高效率的利用某些资源池

各节点不可避免的受到32的内存限制

大量使用本地缓存的应用,造成内存浪费,考虑改为集中式缓存

5.2.2集群间同步导致内存溢出

5.2.3堆外内存导致的溢出错误

除了堆和永久代之外,以下区域受操作系统进程最大内存限制

Direct Momory

线程堆栈

socket缓存区

JNI方法

虚拟机和GC

5.2.4外部命令导致系统缓慢

5.2.5服务器JVM进程奔溃

5.2.6不恰当数据结构导致内存占用过大

5.2.7由windows虚拟内存导致长时间停顿

5.3实战:Eclipse运行速度调优

5.3.1 调优前的程序运行状态

5.3.2 升级jdk 1.6的性能变化及兼容问题

5.3.3 编译时间和类加载时间的优化

5.3.4 调整内存设置控制垃圾收集频率

5.3.5 选择收集器降低延迟



参考文献:

[1] 深入理解Java虚拟机 第二版 --周志明


上一篇下一篇

猜你喜欢

热点阅读