首页 > 编程语言 > 详细

java 虚拟机

时间:2019-03-06 13:27:31      阅读:114      评论:0      收藏:0      [点我收藏+]

 

1.堆内存溢出示例代码

import java.util.ArrayList;
import java.util.List;
public class TestHeap {
 public static void main(String[] args) {
  List<User> list = new ArrayList<>();
  while(true) {
   list.add(new User());

  }
 }
}

 

技术分享图片

 

 

问:这是个小程序,可以快速定位内存溢出的位置,若是大应用中呢?代码上百万行,很难通过代码定位。这时该如何定位呢?

答:通过分析工具定位!

 

问:如何通过分析工具定位?

答:首先,将内存转储成一个快照,然后通过快照对当前环境进行分析。

 

问:如何生存快照? 

 答:通过Java虚拟机的参数设置!

    -XX:+HeapDumpOnOutOfMemoryError      将Java堆内存溢出的堆存储快照dump

    

  -vmargs  //虚拟机设置

     -Xms40m //初始内存

     -Xmx256m //最大内存

     -Xmn16m //最小内存

     -XX:PermSize=128M //非堆内存

     -XX:MaxPermSize=256M

 

 

 

 

 

 

 

 

 

 

java 虚拟机

原文:https://www.cnblogs.com/guchunchao/p/10482446.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!