当前位置:首页 > 单片机 > CPP开发者
[导读]导读:在百度看似简简单单的界面后面,是遍布全国的各个数据中心里,运转着的海量C服务。如何提升性能,降低延时和成本就成了百度C工程师的必修功课。伴随着优化的深入攻坚,诞生并积累下来一系列的性能优化理论和方案,其中不乏一些冷门但精巧实用的经验和技巧。本文从内存访问角度,收集总结了一些...


导读:在百度看似简简单单的界面后面,是遍布全国的各个数据中心里,运转着的海量C 服务。如何提升性能,降低延时和成本就成了百度C 工程师的必修功课。伴随着优化的深入攻坚,诞生并积累下来一系列的性能优化理论和方案,其中不乏一些冷门但精巧实用的经验和技巧。本文从内存访问角度,收集总结了一些具有通用意义的典型案例,分享出来和大家学习交流。



1  背景


在百度看似简简单单的界面后面,是遍布全国的各个数据中心里,运转着的海量C 服务。对C 的重度应用是百度的一把双刃剑,学习成本陡峭,指针类错误定位难、扩散性广另很多开发者望而却步。然而在另一方面,语言层引入的额外开销低,对底层能力可操作性强,又能够为追求极致性能提供优异的实践环境。


因此,对百度的C 工程师来说,掌握底层特性并加以利用来指导应用的性能优化,就成了一门必要而且必须的技能。久而久之,百度工程师就将这种追求极致的性能优化,逐渐沉淀成了习惯,甚至形成了对技术的信仰。下面我们就来盘点和分享一些,在性能优化的征途上,百度C 工程师积累下来的理论和实践,以及那些为了追求极致,所发掘的『奇技淫巧』。


2  重新认识性能优化


作为程序员,大家或多或少都会和性能打交道,尤其是以C 为主的后端服务工程师,但是每个工程师对性能优化概念的理解在细节上又是千差万别的。下面先从几个优化案例入手,建立一个性能优化相关的感性认识,之后再从原理角度,描述一下本文所讲的性能优化的切入角度和方法依据。


2.1  从字符串处理开始


2.1.1  string as a buffer


为了调用底层接口和集成一些第三方库能力,在调用界面层,会存在对C 字符串和C风格字符串的交互场景,典型是这样的:


size_t some_c_style_api(char* buffer, size_t size);void some_cxx_style_function(std::string
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭