飘狐 2022-04-02 09:42 采纳率: 0%
浏览 144

java 多线程程序越运行越慢

问题遇到的现象和发生背景

最近开发一套视频切图程序,功能是读入FTP视频按秒切成图片存入数据库,采用的切图技术是javacv,为了提高效率程序每次取10个视频,每个视频启动一个线程来处理,启动线程我采用了ThreadPoolExecutor做线程池,但在运行时发现程序越运行越慢,我每个小时都会监控一下处理效率,发现效率呈现递减趋势发展开始衰减不多,但运行到30几个小时的时候程序效率就极其低下了,线程好像不动了正常情况一小时能够处理10小时视频,而后来一个两小时才能处理一个小时视频(服务器逻辑核56 颗cpu,内存125G)。

问题相关代码,请勿粘贴截图

我用jmap命令导出了dump,发现点问题但对优化经验不足个人觉得是些小问题不会影响这么大,下面我也贴出来大家看看

img

img

img

运行结果及报错内容

运行结果就是慢,日志并无报错

我的解答思路和尝试过的方法

一开始我没有采用线程池,以为是这个原因后来改成了线程池问题仍然没有得到改善,请各位高人帮我分析一下问题可能出现的原因或者怎样进一步排查,这个问题已经困扰我十多天了,万分感谢

  • 写回答

4条回答 默认 最新

  • a1767028198 2022-04-02 09:57
    关注

    按秒切图存图到数据库,你这个方案团队讨论过吗?
    先不直接存图片,文件存第三方服务或者本地磁盘,库里面存个地址,看看这种处理,长时间运行后,是不是还是效率低下

    评论

报告相同问题?

问题事件

  • 创建了问题 4月2日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号