day2: 程序依然崩溃,现在只能是怀疑内存溢出的问题。

因此先修改最大内存大小,并添加  -XX:+HeapDumpOnOutOfMemoryError ,以便在发生outofmemoryError异常的时候,能够记录dump文件。

新修改的start.bat文件如下: java -Xmx512m -Xms256m  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump -jar -jar ./data-migration-2.jar

 

自测:

新增测试程序,不停的new对象

    public void test() throws InterruptedException {
        List<SkuInfo> skuInfoList=new ArrayList<>();
        while (true)
        {
            skuInfoList.add(new SkuInfo("test","2018-09-10"));
            Thread.sleep(1);
            System.out.println("创建一条");
        }
    }

 然后,把启动程序设置成最大15M内存,使用java VisualVM监视查看内存情况

java -Xmx15m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump -jar .\man-yao-client-1.0-SNAPSHOT.jar

 

 




 

加载dump文件进行分析,可以看到skuinfo有86067个实例。

 

posted on 2018-10-12 15:27  falcon_fei  阅读(182)  评论(0编辑  收藏  举报