所谓的潇洒

导航

性能调优经历一

项目背景:

  这是个门禁管理系统,有个监控进出记录的界面,开启监控时可以选择是否抓拍和录像。其中,抓拍是用onvif协议请求摄像头进行,而录像是用的VLC。

步骤:

1.收到反馈:长时间开启监控,电脑很卡

2.定位“卡”的分类

  1>查看客户端电脑配置,排除配置太低

  2>搭起测试环境,重现问题

  3>打开任务管理器,观察cpu占用、内存占、IO占用、线程数及网络

  结论:内存占用不断增长。

3.定位功能

  1>开启监控,不选择抓拍和录像,观察任务管理器,内存稳定

  2>开启监控,选择抓拍,观察任务管理,内存不断增长

  3>开启监控,选择录像,观察任务管理,内存稳定

  结论:抓拍功能

4.定位代码块(确定了抓拍功能,而抓拍功能的代码大致分为onvif请求和处理图片两部分)

  1>可能是图片释放不及时,加上dispose测试效果,无效果

  2>注释掉图片处理代码,测试效果,无效果

  3>注释掉onvif请求代码,将图片来源改为本地文件,测试效果,内存稳定

  结论:onvif请求

5.优化onvif

  1>查看onvif调用及onvifHelper类内部的stream是否有释放,没释放的加上using

  2>查看其他不常用的类是否有Close或Dispose方法且未调用,加上using

  3>测试效果,内存稳定

结束语:

  解决了前任长期头疼的遗留问题,小小的成就感开心一整天。^_^

  我们自己写代码的时候要有意识地关注内存释放、线程安全、CPU占用、执行速度等问题;网络上复制来的现成代码,要经过严格地测试及优化,最终转为自己的东西;养成写博客的习惯,总结经验教训,复用可靠代码。

posted on 2021-10-26 15:56  所谓的潇洒  阅读(31)  评论(0编辑  收藏  举报