您的位置:首页 > 其它

产品中的性能优化总结

2017-07-02 20:11 169 查看

0x01 缘由

     引自:“一个重要的性能优化经验是:绝不应该相信你的“哪些部分会比较慢”直觉,而是应该在实际环境中测量API的真实性能概况,然后把优化精力集中在影响最大的部分。进一步说是,没必要一开始就实现最高效的API:先用一种简单的方式实现,在一切正常工作后,再找出需要优化的部分。”--《C++ API设计》。
     在整个3-6月从产品的简单设计,到产品的快速开发,到产品性能的优化,再到模块的规范和代码的规范上。虽然每个环节存在一些不规范的情况,至少在领导高压情况下完成了一个版本的开发,也达到了预期的性能指标。

0x02 优化场景

     场景不同,优化手段不同,优化要求也不同。我们的场景如下: 高效的数据包捕获和协议还原(类型xplico,博文其他有介绍)。
     处理性能:800Mbps  内存占用: 1G  CPU高负载下: 占用不超过30%  I/O性能;

0x03 采取的手段

     a.valgrid性能热点图;
     b.gperftool性能占比图;
     c.关键函数消耗时间;
     d.top/htop工具情况;
     e.python脚本统计;
     f.关键函数代码走查优化;
     g.查看i/o处占用;
     h.队列解耦、缓存;
     i.多核编程处理,线程逻辑核绑定;
     j.内存池技术处理;
     k.tcmalloc优化内存申请、分配;
     l.高效的AC匹配算法;
     m.自研一些包构造工具;

     n.大量的埋点统计;

     o.外场实时场景流量分析;

0x04 总结

     整个过程没有富有经验的同事,都是同事们想方设法,讨论查资料。踩过无数坑,但收获满满。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息