前言:

在服务器Linux(内存32G)下执行加密算法,入参是1G时发现了内存崩溃问题,直接杀死了Java进程,所以需要在Windows调试代码看是否能重现此问题。Windows的内存小,入参是300M就出现了,后来排查到原因是因为执行程序需要的内存超过了运行机器的内存。

Linux执行时内存的效果:

杀死进程很快,在1秒内,不留神都看不到。

Windows执行:

在运行Java代码时,出现A fatal error has been detected by the Java Runtime Environment, C [VCRUNTIME140.dll+0x1989]

根据执行的日志,报错具体信息在hs_err_pid18804.log,根据错误日志文件hs_err_pid18804.log,我们可以查看出错的具体原因。

下面代码片段是一次错误生成的日志文件:

查看hs_err_pid18804.log,找到问题出现在动态链接库VCRUNTIME140.dll上面,但是,错误的发生不是因为动态库VCRUNTIME140.dll有问题,而是在使用相关函数时出错。

引起VCRUNTIME140.dll报错的是Java的相关调用类和相关调用dll文件

byte[] plainData = new byte[data.getDataSize()];
data.getDataSize()=300M也就是300*1024*1024=314,572,800B

执行机器资源:

压测客户端操作系统

Windows 10 家庭中文版

64 位操作系统, 基于 x64 的处理器

压测客户端IP地址

10.1.7.63(个人机器)

CPU

11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz   2.80 GHz

cpu cores : 4   8个线程

内存

16.0 GB (15.7 GB 可用)

已知:执行电脑内存16G,已使用了50%,只剩下8G可用。

 本次加密算法执行入参:300M,8个线程同时多线程执行。

原因分析:入参的参数是:300M,出参300M,加密过程需要300+150M内存,1.05*8=8.4G,超出了内存,导致内存崩溃。

所以出现了上面问题。

解决办法:有4种方式

1、执行机器执行该程序时,其他程序都关闭

2、执行机器加大内存

3、测试时不输入太大的入参。

4、修改代码,能够判断内存大小大于入参的4倍,才会执行加密算法。

最好的方式应该是4。临时做法是:2

A fatal error has been detected by the Java Runtime Environment, C [VCRUNTIME140.dll+0x1989]相关推荐

  1. Tomcat执行时报A fatal error has been detected by the Java Runtime Environment:SIGSEGV (0xb)

    在Linux下,执行时Tomcat生成一份.log文件,Tomcat 的 log 文件也有报错,报的很清新: # # A fatal error has been detected by the Ja ...

  2. 应用海康SDK获取设备图片A fatal error has been detected by the Java Runtime Environment:

    海康SDK版本:CH-HCNetSDKV6.1.6.45 add message # # A fatal error has been detected by the Java Runtime Env ...

  3. 安装JDK出现问题 Error opening registry key'software\Javasoft\Java Runtime Environment'

    第一次安装JDK测试是否安装成功,打开cmd输入java -version 回车的时候出现如下错误: Error opening registry key'software\Javasoft\Java ...

  4. Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' Error: could not find java.

    今天准备准备重装jdk,将之前的jdk卸载之后在cmd检验时发现报错 Error: opening registry key 'Software\JavaSoft\Java Runtime Envir ...

  5. eclipse打开出错 Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

    eclipse出现注册错误: ①在"打开"输入框中输入"regedit"命令,删除注册表的HKEY_LOCAL_MACHINE\SOFTWARE\JavaSof ...

  6. An unexpected error has been detected by Java Runtime Environment

    最近团队内部遇到一个非常奇怪的问题.网上有人说是sun公司的bug,我在这里贴一下,有兴趣的同志可以研究一下. 据说,换一个java版本就好了,团队内部正在进行升级java版本. sun公司官网解释: ...

  7. Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\CurrentVersion’

    报错信息 Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' has value '1.8 ...

  8. Fatal error: Call to undefined function gmp_strval() XAMPP 1.7.4 缺少php_gmp.dll

    出现这样的错误,就是没有启动apache的时候,没有启动gmp模块. 我用的是xampp 1.7.4. 打开xampp/php/php.ini,找到;extension=php_gmp.dll,去掉注 ...

  9. VisualVM 启动报错Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)

    目录 一.报错信息 二.查看JDK路径 三.设置VisaulVM的JDK路径 一.报错信息 报错信息如下: 报错原因:没有正确配置JDK路径 二.查看JDK路径 Mac下查看JDK路径: /usr/l ...

最新文章

  1. 第2章 熟悉Eclipse开发工具---- System.out.println(sum=+(a+b));
  2. CentOS装LAMP服务器(Apache2+PHP5+MySQL)
  3. python如何编辑pdf_python3.6 导入并编辑pdf 错误在哪里啊
  4. appium+python自动化98-非select弹出选择框定位解决
  5. 如何在Python中获取文件创建和修改日期/时间?
  6. css的font修改颜色,css的font字体颜色如何设置
  7. 康威定律-软件之道:软件开发争议问题剖析
  8. ssh图示+hibernate图示
  9. java 地图渲染_离屏渲染在车载导航中的应用
  10. 如何循序渐进向DotNet架构师发展(转)
  11. HDU 题目分类(转载)
  12. 利用ESP定律进行脱壳 ——合天网安实验室学习笔记
  13. 台湾成功大学起诉苹果Siri专利侵权 库克哥凌乱了
  14. 京东方恢复给苹果供应OLED面板,到底扯下了谁的遮羞布?
  15. 快速去掉迅雷上的弹窗广告
  16. 网络重置后WLAN网络找不到怎么办?
  17. python求加速度_【掌控】mpython-加速度-水平仪 - DF创客社区 - 分享创造的喜悦
  18. 【解决问题】修复虚拟机报错,写入文件时出错,请确认您有访问该目录的权限
  19. 网站首页被K的原因及其恢复方法
  20. 水果店线下营销活动案例,水果店营销活动促销方案怎么做

热门文章

  1. c语言给定n个矩形及其长和宽,c1科目一模拟考试2021最新版练习题
  2. Linux——扩展和缩减、删除逻辑卷
  3. 谷歌浏览器内置抓包工具
  4. 英雄远征Erlang源码分析(5)-协议解析与玩家登录处理
  5. 万网虚拟主机版本php5.5,虚拟主机如何改成php5.6版本
  6. 机智云安卓初步配置遇见的问题与解决
  7. localStorage的图片缓存
  8. '用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联(收藏)
  9. java 变声_“秒变萝莉音”,游戏中的变声是如何实现的?
  10. 115 JS(javascript)