博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JVM入门(三)
阅读量:5368 次
发布时间:2019-06-15

本文共 468 字,大约阅读时间需要 1 分钟。

六,内存溢出

  • 堆溢出  Java Heap Space,解决方法增大堆空间
  • 永久区溢出  PermGen Space,增大Perm区,允许Class回收
  • 栈溢出  
  • 直接内存溢出

七,内存溢出检查工具

-XX:+HeapDumpOnOutOfMemoryError

JVM 就会在发生内存泄露时抓拍下当时的内存状态,也就是我们想要的堆转储文件

  • MAT
  1. 对问题发生时刻的系统内存状态获取一个整体印象
  2. 找到最有可能导致内存泄露的元凶,通常也就是消耗内存最多的对象
  3. 进一步去查看这个内存消耗大户的具体情况,看看是否有什么异常的行为。

八,锁

  • 加锁:每一个线程都是一个执行序列,如果是同样的run方法,那么线程执行一样的计算过程。在所有的线程执行过程中,某个内存变量可能会被多个相同或不同的线程所访问(读或写),那么有可能需要对内存变量加锁,让每个线程串行的访问这个内存变量。
  • 系统层面的锁位置:业务代码--jdk代码--jvm代码--操作系统

转载于:https://www.cnblogs.com/ttkl90/p/6526775.html

你可能感兴趣的文章
libvirt log系统分析
查看>>
poj 1068 Parencodings
查看>>
docker 数据卷管理
查看>>
adb
查看>>
如何让一个div的大小,从某一个特定值开始,随内容的增加而自动变化?
查看>>
P1977 出租车拼车(DP)
查看>>
iOS开发--完整项目
查看>>
我的博客园皮肤模板
查看>>
正则表达式
查看>>
java基础:不同进制的表现形式
查看>>
Base64转换为blob对象
查看>>
gulp自动化压缩合并、加版本号解决方案
查看>>
windows下面安装Python和pip教程
查看>>
Java 动态向 JTable 中添加数据
查看>>
平安科技移动开发二队技术周报(第九期)
查看>>
JS window.open()属性
查看>>
Oracle【二维表管理:约束】
查看>>
2017-2018-1 20155307 《信息安全系统设计基础》第5周学习总结
查看>>
微软职位内部推荐-Principal Dev Manager for Windows Phone Apps
查看>>
jquery改变元素属性值(转)
查看>>