问题遇到的现象和发生背景
最近开发一套视频切图程序,功能是读入FTP视频按秒切成图片存入数据库,采用的切图技术是javacv,为了提高效率程序每次取10个视频,每个视频启动一个线程来处理,启动线程我采用了ThreadPoolExecutor做线程池,但在运行时发现程序越运行越慢,我每个小时都会监控一下处理效率,发现效率呈现递减趋势发展开始衰减不多,但运行到30几个小时的时候程序效率就极其低下了,线程好像不动了正常情况一小时能够处理10小时视频,而后来一个两小时才能处理一个小时视频(服务器逻辑核56 颗cpu,内存125G)。
问题相关代码,请勿粘贴截图
我用jmap命令导出了dump,发现点问题但对优化经验不足个人觉得是些小问题不会影响这么大,下面我也贴出来大家看看
运行结果及报错内容
运行结果就是慢,日志并无报错
我的解答思路和尝试过的方法
一开始我没有采用线程池,以为是这个原因后来改成了线程池问题仍然没有得到改善,请各位高人帮我分析一下问题可能出现的原因或者怎样进一步排查,这个问题已经困扰我十多天了,万分感谢