因为虚拟机导致的错误

简介: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 以上参数: -Xms20m:表示堆的最小值为20M -Xmx20m:表示堆的最大值同样设置为20M, -XX:+HeapDumpOnOutOfMemoryError:表示的意思是可以让虚拟机在出现内存溢出异常时Dump(倾倒,倾卸,垃圾场,倒垃圾)出当前内存堆转储快照以便事后进行分析。

-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

以上参数:

-Xms20m:表示堆的最小值为20M

-Xmx20m:表示堆的最大值同样设置为20M,

-XX:+HeapDumpOnOutOfMemoryError:表示的意思是可以让虚拟机在出现内存溢出异常时Dump(倾倒,倾卸,垃圾场,倒垃圾)出当前内存堆转储快照以便事后进行分析。

 

Debug configuration中配置以上参数,运行一下代码:将出现最下面的异常。

-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

当改变上面的数值的参数后,可以改变运行了的次数。

入以下代码:

package com.it;

 

import java.util.ArrayList;

import java.util.List;

 

publicclass HeapOOM {

    staticclass OOMObject{

    }

   

    publicstaticvoid main(String[] args) {

       int i = 0;

       List<OOMObject> list = new ArrayList<OOMObject>();

       while(++i<1005310){

           list.add(new OOMObject());

           System.out.println(i);

       }

    }

}

出现的异常如下:

1005306

1005307

1005308

java.lang.OutOfMemoryError: Java heap space

Dumping heap to java_pid4568.hprof ...

Heap dump file created [22044099 bytes in 0.464 secs]

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

    at java.util.Arrays.copyOf(Unknown Source)

    at java.util.Arrays.copyOf(Unknown Source)

    at java.util.ArrayList.ensureCapacity(Unknown Source)

    at java.util.ArrayList.add(Unknown Source)

    at com.it.HeapOOM.main(HeapOOM.java:14)

说明:(22044099/1024)/1024 = 21M,比配置过的参数多1M(一般比配置的数值大).此程序片段运行了1005308次,运行时间是0.464秒。出现的异常是堆内存溢出异常。

在运行以上程序片段期间,CPU使用率也将上升,几度为100%。运行之前的截图如下:

cads运行之后的截图如下:

 

 

 

 

 

目录
相关文章
|
3月前
|
Oracle 关系型数据库 虚拟化
在VMware的Win10虚拟机中安装使用ENSP
本文介绍了在Windows 10虚拟机上安装ENSP及相关软件的全过程,包括VirtualBox、WinPcap、Wireshark、VLC和ENSP的安装步骤,并提供图文演示,帮助用户顺利完成配置与测试。
874 134
|
2月前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
389 0
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
2月前
|
Linux 虚拟化 iOS开发
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
415 0
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
|
6月前
|
虚拟化 数据中心
VMware vSphere Replication 9.0.3 - 虚拟机复制和数据保护
VMware vSphere Replication 9.0.3 - 虚拟机复制和数据保护
248 0
|
2月前
|
存储 Linux 文件存储
VMware vSphere Replication 9.0.4 - 虚拟机复制和数据保护
VMware vSphere Replication 9.0.4 - 虚拟机复制和数据保护
151 2
|
4月前
|
Linux 虚拟化 iOS开发
Windows Server 2025 OVF (2025 年 8 月更新) - VMware 虚拟机模板
Windows Server 2025 OVF (2025 年 8 月更新) - VMware 虚拟机模板
396 3
Windows Server 2025 OVF (2025 年 8 月更新) - VMware 虚拟机模板
|
5月前
|
编解码 网络协议 网络安全
OpenWrt x86 虚拟机VMware ESXi安装
OpenWrt x86 虚拟机VMware ESXi安装
|
3月前
|
监控 Linux 网络安全
VMware vCenter Converter 9.0 - P2V 虚拟机转换工具
VMware vCenter Converter 9.0 - P2V 虚拟机转换工具
710 0
VMware vCenter Converter 9.0 - P2V 虚拟机转换工具
|
4月前
|
Linux 虚拟化 iOS开发
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
307 0
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
|
6月前
|
Linux 虚拟化 iOS开发
Windows Server 2016 OVF (2025 年 6 月更新) - VMware 虚拟机模板
Windows Server 2016 OVF (2025 年 6 月更新) - VMware 虚拟机模板
125 9
Windows Server 2016 OVF (2025 年 6 月更新) - VMware 虚拟机模板