在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近在做javaweb项目,需要用到matlab进行数据计算需要,所以用matlab打包的方法进行开发。
项目需求: 本项目是需要从本地上传多张图片,然后调用matlab对图片进行处理。 出现问题: 在上传图片处理过程中发现内存占用飙升。 问题浮现: 在未开始上传文件时: 上传完文件之后:其占用内存一直是这个数值不变(等了一段时间) 右键点击该进程,找到详细信息,找到其pid 使用jconsole连接 会发现该线程存在垃圾回收,文件上传完毕后内存占用稳定在200多M 手动执行gc:发现其内存占用依然很高。
开始处理问题的过程: 1、第一反应是可能我的图片在程序处理过程中一直保留在内存中,没有被垃圾收集器进行回收。所以我对上传的图片进行了处理,让垃圾收集器能够对其回收,但是发现该问题还是没有解决。 2、由于使用了redis,以为是redis连接导致(可能连接没关,或其他问题)。注释掉redis代码之后该问题还是没有解决。 3、由于代码量不多,有的问题都排除了,就只有调用matlab接口了。考虑到调用之后没有及时关闭资源等问题,所以对matlab进行注释。发现内存占用问题消失了。然后在网上找了一下解决方案,在调用了matlab接口之后使用matlab打包类调用其dispose()方法对资源及时释放。 问题: javaweb调用matlab程序没有释放资源导致。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论