More Effective C++ 条款16 谨记80-20法则

1. 80-20法则:一个程序80%的资源用于20%的代码上(80%的执行时间华仔大约20%的代码身上,80%的内存被大约20%的代码使用,80%的磁盘访问动作由20%的代码执行,80%的维护力气花在20%的代码上面).80-20法则的重点不在于字面上的数字,而是强调"软件的整体性能几乎总是由其构成要素(代码)的一小部分决定".

2. 80-20法则说明软件性能的瓶颈往往只在一小部分代码,而由于"软件的性能特质倾向于高度的非直觉性",因而要找出性能瓶颈,一个有效的方法就是借助程序分析器(program profiler)测试程序各区段所使用资源.此外,为了防止测试数据的片面性,需要使用尽可能多的数据进行分析.

时间: 2024-10-04 03:55:28

More Effective C++ 条款16 谨记80-20法则的相关文章

Effective C++ 条款16

成对使用new和delete时要采取相同形式 本节条款知识点在于delete和delete[]的区别 大家都知道在new一个对象的时候要delete一个对象,在new 一个对象数组时要delete[]才是正确的. 大家也知道new产生两个行为,一个是申请对象所需内存,另一个是调用类构造函数初始化对象. 那么,delete的行为也有两个,一个是调用对象的析构函数,另一个是回收内存. 而new[]是对每个对象都进行上面同样的行为. 这时候如果不小心new匹配了delete[],或者new[]匹配了d

More Effective C++ 条款34 如何在一个程序中结合C++和C

1. C++和C混合使用的前提之一就是编译器产生兼容的目标文件(.lib和.dll等).所谓"兼容",指的是编译器在"预编译器相依的特性上"一致,如int和double大小,参数压栈机制等,只有在这个基础上才能讨论结合使用C++和C模块的问题. 2. 在1的基础上,要结合使用C++和C的模块,主要有以下几点需要注意: 1). name mangling(名称重整) Name mangling是C++用于支持函数重载的机制,它对重载的函数名称进行一定改变,使得每个函数

Effective C++:条款16:成对使用new和delete时要采取相同形式

(一) 先看下面的代码: string* stringArray = new std::string[100]; ... delete stringArray; 这样的做法是错误的,因为stringArray所含的100个string对象中的99个可能并没有被适当地删除,因为它们的析构函数很可能没有被调用. (二) 使用new时发生的事情: (1)内存被分配出来: (2)针对此内存会有一个或更多个构造函数被调用: 使用delete,也有两个动作: (1)针对此内存会有一个或更多个析构函数被调用:

Effective C++ 条款15、16 在资源管理类中提供对原始资源的访问||成对使用new 与 delete要采取相同形式

1.在资源管理类中提供对原始资源的访问     前几个条款很棒,它们是对抗资源泄露的壁垒,但很多APIs直接指向 资源,这个时候,我们需要直接访问原始资源.     这里,有两种方法解决上述问题,我们可将RAII对象转换为原始资源.通过 显式转换与隐式转换.     通常,tr1:: shared_ptr 和 auto_ptr 都提供一个get成员函数,用来执行显式转换,也就是返回智能指针内部的原始指针的复件.因为它也重载了指针取值操作符* –>.当然也可以通过隐式转换为底部原始指针.     

创业者谨记:与这五个部门打交道要小心(要知错就改,或积极解释,或示弱,或求被监管,或变通,就是千万别对着干)

创业者谨记:与这五个部门打交道要小心 2015年01月29日11:43  <创业家>杂志     收藏本文 刚出来的消息,淘宝因为抽查一事要投诉国家工商总局,乱了乱了. 1月23日,国家工商总局发布网络交易商品定向监测报告,结果显示淘宝正品率最低,为37.25%.4天后,淘宝发文表示不满,称相关司司长刘红亮“吹黑哨”,有着“神一样的逻辑”.昨日下午,工商局召开新闻发布会,网络商品交易监管司副司长杨洪丰对此作出回应,称委托第三方抽检目的是找问题,而不是为了反应网购领域质量有多差,不能过度解读.

More Effective C++ 条款35 让自己习惯于标准C++ 语言

(由于本书出版于1996年,因此当时的新特性现在来说可能已经习以为常,但现在重新了解反而会起到了解C++变迁的作用) 1. 1990年后C++的重要改变 1). 增加了新的语言特性:RTTI,namespaces,bool,关键词mutable和explicit,enums作为重载函数之自变量所引发的类型晋升转换,以及"在class 定义区内直接为整数型(intergral) const static class members设定初值"的能力. 2). 扩充了Templates的特性

effective c++ 条款4 make sure that objects are initialized before they are used

1 c++ 类的数据成员的初始化发生在构造函数前 class InitialData { public: int data1; int data2; InitialData(int a, int b) { data1 = a: //this is assignment data2 = b; //this is assignment } /* InitialData(int a, int b):data1(a),data2(b) //this is initial {} */ } 2 不同cpp文

刘老师建议:论文练习时刻谨记!

刘老师建议:从现在开始,练习论文写作的时候时刻提醒自己三件事情: 重要注意事项1:5月论文考试新要求,摘要的格子数330字,正文的格子数2750字.因此,建议各位学员修改论文,控制论文字数. 重要注意事项2:论文写作的的关键点在于好的论点,各位学员写过过程中时刻牢记论点的提炼,用论点统筹段落. 重要注意事项3:无论准备了多少范文,进考场写作的时候切记看题目. 时刻谨记,边写边记! 欢迎参加5月13日论文视频直播客.... 刘老师建议:论文练习时刻谨记!,布布扣,bubuko.com

Effective C++ 条款3 尽可能用const

1. const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体.用const修饰指针,如果const出现在*之前,表明指针不能更改所指向的对象的内容,如果const出现在*之后,表明指针只能指向同一块内存.另外int const*p和const int*p含义相同.如果对象成员有普通指针,那么构造该类的一个const对象时,const修饰使得该指针只能指向同一块内存,但指针指向的内容可以改变. 2. 将某些东西声明为const可以帮助编译器侦测出错误用法. 3. 编译器强制实