案例部分:
案例一:服务器内存垃圾回收时GC停顿导致网站失去响应。
原因:64位JDK内存消耗过大。
改进:改为CMS收集器进行垃圾回收
案例二:服务器采用全局缓存,出现内存溢出
原因:协议复杂,JBossCache和系统存在缺陷
改进:限制写,允许读
案例三:考试系统服务器内存溢出异常
原因:Direct Memory被动垃圾回收
改进:控制内存分配大小
案例四:数字校园应用系统CPU使用率高
原因:Runtime.getRuntime().exec()调用脚本消耗资源
改进:采用JAVA的API获取
案例五:服务器进程自动关闭
原因:异步方式服务速度不对等。
改进:异步调用改为消息队列
案例六:服务器进行数据分析时GC回收造成停顿
原因:回收机制不合理
改进:GC调优
案例七:GUI桌面程序出现停顿状态
原因:GC回收导致停顿
改进:加入参数“-Dsun.awt.keepWorkingSetOnMinimize=true”
实战部分:
Eclipse运行速度调优:
1. 通过VisualVM及其扩展插件VisualGC采集软件加载插件虚拟机运行数据。
2. 升级JDK版本,并解决兼容问题
3. 监控类加载时间和编译时间,选用-client虚拟机来运行Eclipse
4. 调整内存设置控制垃圾回收频率。
5. 采用CMS垃圾回收器