首页 > 代码库 > JVM入门(三)
JVM入门(三)
六,内存溢出
- 堆溢出 Java Heap Space,解决方法增大堆空间
- 永久区溢出 PermGen Space,增大Perm区,允许Class回收
- 栈溢出
- 直接内存溢出
七,内存溢出检查工具
-XX:+HeapDumpOnOutOfMemoryError
JVM 就会在发生内存泄露时抓拍下当时的内存状态,也就是我们想要的堆转储文件
- MAT
- 对问题发生时刻的系统内存状态获取一个整体印象
- 找到最有可能导致内存泄露的元凶,通常也就是消耗内存最多的对象
- 进一步去查看这个内存消耗大户的具体情况,看看是否有什么异常的行为。
八,锁
- 加锁:每一个线程都是一个执行序列,如果是同样的run方法,那么线程执行一样的计算过程。在所有的线程执行过程中,某个内存变量可能会被多个相同或不同的线程所访问(读或写),那么有可能需要对内存变量加锁,让每个线程串行的访问这个内存变量。
- 系统层面的锁位置:业务代码--jdk代码--jvm代码--操作系统
JVM入门(三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。