代码性能优化

性能问题大部分都是随着项目的维护产生的,比如系统的内容变多,角色数量的增长,整个优化流程基本上是

  • 发现明显卡顿
  • 使用工具定位性能瓶颈
  • 分析产生瓶颈的代码、函数
  • 优化 测试

常见的优化维度:

  • 算法、数据结构
    编码压缩算法
    比如寻路算法JPS算法 替代A*
    比如业务逻辑的循环次数,遍历方式、提前return
    辅助输出结构提升查询速度
    大Page的LRU算法使用list 而不是vector更新最近使用的元素
  • 缓存思路(空间换时间 复用)
    比如池化技术如:内存池、线程池、对象池(注意动态伸缩性问题,当需求>池容量可导致池化技术失效)
  • 拆解思路
    将大消耗的任务分解成小任务分tick加载
  • 动静分离
    减小更新数据的粒度
  • lazyInit
    用时加载,而不是一次性全部加载完
  • 并发
    多线程编程(注意同步异步锁的影响),很多时候并发不及预期可能是同步的问题,比如内存分配器的并发支持等。
  • 近似思想
    对于有些问题,不用求出最优解,找出可行解即可
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容