接上【厚积薄发】编程技术项目总结4—效率优化专项 https://blog.csdn.net/lujiang0120/article/details/79457276
需求背景:
前段时间入组了一个大型C/S架构的项目(目前代码量300万+左右),入组时项目的开发已经进入了中后期。随着常规需求的研发完成,随之而来的就是性能问题,性能问题包括效率问题和内存问题,上篇已经写了效率问题。大型项目特别是大型的桌面应用类软件对内存要求无疑也是个巨大的挑战。
优化思路:
主要是两个层次:系统设计层次、代码层次。
具体实现:
代码层次:
1、已有代码中内存泄漏问题解决,借助工具输出内存泄漏 告,再开发结合 告去分析解决。用到的主要工具有VLD内存泄漏检测工具或者UMDH(后面写篇文章详细说明)。
2、程序中占那内存比较大的对象的生命周期优化,做要生命周期最优化,合适的时间及时释放不要一直占据内存。
3、日常研发的代码提交的时候代码审查,关注内存泄漏问题。
4、智能指针的引入(后面写篇文章详细说明)。
系统层次:
1、Tcmalloc内存分配器的引入,能够解决内存碎片问题(后面写篇文章详细说明)。
2、合理拆分模块和实现多进程,本项目中可以把软件拆分为绘图建模和模型算量两个进程。
3、设计模式的优化,当前软件是基于策略模式的,策略模式的缺点是调用端必须知道所有的策略,也就是说会初始化出所有的策略对象,导致小对象膨胀。采用享元模式跟策略模式结合的方式来优化小对象过多的问题,类似对象池的概念。(后面写篇文章详细说明)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!