一 概述
最近项目中使用BufferImage进行图片操作,当时经常出现OOM的情况。
BufferedImage backGroundImage = new BufferedImage(width, height, imageType);
错误日志:线上OOM问题_calm_encode的博客-优快云博客_oom现象
关键日志:
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:75)
at java.awt.image.Raster.createPackedRaster(Raster.java:467)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
二 解决过程
根据关键日志信息,分别定位到BufferedImage.java:324,DirectColorModel.java:1032,Raster.java:467,DataBufferInt.java:75的源码信息。<

本文分析了使用BufferedImage处理图片时遇到的内存溢出问题,并通过代码定位找到根本原因。文章提供了在特定环境下测试得到的安全图片尺寸范围。
最低0.47元/天 解锁文章
1605





