前言:
在服务器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,我们可以查看出错的具体原因。
下面代码片段是一次错误生成的日志文件: