码迷,mamicode.com
首页 > 其他好文 > 详细

JVM入门(三)

时间:2017-03-09 18:41:52      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:加锁   需要   查看   状态   内存   ror   操作系统   操作   pac   

六,内存溢出

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

七,内存溢出检查工具

-XX:+HeapDumpOnOutOfMemoryError

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

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

八,锁

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

JVM入门(三)

标签:加锁   需要   查看   状态   内存   ror   操作系统   操作   pac   

原文地址:http://www.cnblogs.com/ttkl90/p/6526775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!