java stw_java 中STW现象解决
先自己弄个问题
产生这个STW问题有 dump线程 死锁检查 堆dupm
/**产生stw其它几个因素:
* dump线程
* 死锁检查
* 堆dupm
* 垃圾回收算法:为让stw时间较长,增大年老代空间和选用serial old垃圾算法进行回收老年代
*
*
* jvm垃圾回收参数:-Xms512m -Xmx512m -Xmn4m -XX:+PrintGCDetails -XX:+UseSerialGC
*
* @author zhanghua
*
*/
public class GenerateSTW {
/**
* 通过集合引用对象,保证对象不被gc回收
*/
private List content=new ArrayList();
public static void main(String[] args) {
GenerateSTW stw=new GenerateSTW();
stw.start();
}
private void start() {
while(true){
try {
content.add(new byte[1024]);
} catch (OutOfMemoryError e) {
//在不可以分配的时候,进行清理部分空间,继续运行,这样会很快产生下一次垃圾回收
for(int i=0;i<1024;i++){
content.remove(i);
}
}
}
}
}
复制代码
是否有方法尽可能减少一次STW停顿时间?由此带来的弊端是什么?
答:减少一次STW停顿时间,我这里从三个方面回答,
1、个是垃圾算法选择
垃圾算法选择:现在都是多核cpu,可以采用并行和并发收集器,如果是响应时间优化的系统应用 ,则jdk6版本一般
选择的垃圾回收算法是:XX:+UseConcMarkSweepGC,即cms收集器,这个收集器垃圾回收时间短,但是垃圾回收总时间变长,使的降低吞
吐量,算法使用的是标记-清除,并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.
CMSFullGCsBeforeCompaction此值设置运行多少次GC以后对内存空间进行压缩
2、一个是程序使用堆设置
程序使用堆设置:应该根据程序运行情况,通过Jvm垃圾回收分析,设置一个比较合适的堆大小,不能一意味的将堆设置过大,导致
程序回收很大一块空间,所以会导致stw时间较长,
3、无用对象尽早释放
无用对象尽早释放:使用的对象,如果没有用,尽早设置null,尽量在年轻代将对象进行回收掉,可以减少full gc停顿时长
java stw_java 中STW现象解决相关推荐
- Java 8中HashMap冲突解决
Java 8中HashMap冲突解决 目录(?)[+] 在Java 8 之前,HashMap和其他基于map的类都是通过链地址法解决冲突,它们使用单向链表来存储相同索引值的元素.在最坏的情况下,这种方 ...
- Java虚拟机中STW(stop the world)是什么意思
Stop-the-World,简称STW 1.指的是GC事件发生过程中,会产生应用程序的停顿.停顿产生时整个应用程序线程都会被暂停,没有任何响应, 有点像卡死的感觉,这个停顿称为STW. (1)可达性 ...
- Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?
苍穹之边,浩瀚之挚,眰恦之美: 悟心悟性,善始善终,惟善惟道! -- 朝槿<朝槿兮年说> 写在开头 提起Java领域中的锁,是否有种"道不尽红尘奢恋,诉不完人间恩怨"的 ...
- Java 并发编程解析 | 如何正确理解Java领域中的内存模型,主要是解决了什么问题?
写在开头 这些年,随着CPU.内存.I/O 设备都在不断迭代,不断朝着更快的方向努力.在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异.CPU 和内存的速度差异可以形象地描述为:C ...
- nc提示java过期_用友NC系统使用过程中常见问题和解决方法!财会必看!
原标题:用友NC系统使用过程中常见问题和解决方法!财会必看! 用友NC系统使用过程中常见问题和解决方法: 1.无法安装客户端插件,不能进入NC系统登陆界面 问题现象 现象1:可以打开web界面,但无法 ...
- 用友java错误_用友NC系统使用过程中常见问题和解决方法
用友NC系统使用过程中常见问题和解决方法: 1.无法安装客户端插件,不能进入NC系统登陆界面 问题现象 现象1:可以打开web界面,但无法进入登陆界面,一直停留在右图所示界面. 现象2:系统提示安全警 ...
- java开发中遇到的问题及解决方法(持续更新)
java开发中遇到的问题及解决方法(持续更新) 参考文章: (1)java开发中遇到的问题及解决方法(持续更新) (2)https://www.cnblogs.com/LiuYanYGZ/p/6112 ...
- java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...
- Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)
Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) 参考文章: (1)Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) (2)https://www.cn ...
最新文章
- 算法基础数学知识篇(1)之----- 排列数组
- QT的QEnableSharedFromThis类的使用
- TTL and CMOS 的几个基本功能模块
- 10.25模拟 三角形
- IOS学习之多线程(2)--创建线程
- Eclipse 4.10.0 正式发布,全面拥抱 Java 11!
- 第 1 章 MySQL 的架构介绍
- C#图解教程 第二十四章 反射和特性
- 软件中断SWI的实现
- open modelica RLC仿真
- Java集合这样子学习
- 求解1-1/2+1/3+...1/99-1/100的和
- win10无法装载iso文件_Win10系统怎么安装iso镜像文件 Win10系统安装iso镜像文件方法...
- 超大文件上传和断点续传的实现
- 吴忌寒入选福布斯2019最年轻亿万富豪榜;黑客已将价值近千万EOS偷跑 | 1分钟链圈...
- sas如何显示行数_SAS中获取数据集观测值个数
- 使用 Charles 简单解决微信开发者工具网络连接失败的问题
- word中仿宋字体显示不清楚的问题
- SAP中如何运行MRP不考虑相关需求
- 组合数学——二项式反演
热门文章
- 解决Operation not permitted: ‘chromedriver‘问题
- JSP+SQL实现留言功能(含留言回复功能),附源码,版本2
- 什么?!UI设计了新动画特效!别说话,Drawable来救你。
- 编程 注解 注释 区别
- 如何下载Latex缺少的宏包
- 怎么样用python画一朵花_教你使用python画一朵花送女朋友
- 转: 关于UI开发(总结一些技术和一些论坛牛人讨论)
- ubuntu 12.04 qq
- blender模型导入Unity朝向、比例问题测试及解决办法
- “李妈妈—嘉利敦” 十四天成长计划挑战赛