全部博文(280)
发布时间:2013-09-02 10:19:47
在软件开发中大规模引入智能指针,担心效率,在vector里面塞满了shared_ptr,一旦遍历,想想都会心痛。
如果给有10万元素的vector和list中,随机删除和插入 4 byte大小的node,哪个效率更高?不要被臆想欺骗, vector 效率更高, 你信么?Bjarne 在他的 C++11 Style – A Touch of Class 中提到过这个问题,也是我第一次看到,各种震惊。cpp-benchmark-vector-list-deque做了更详细评测。对于软件效率,想象的未必是真实的。
我对智能指针的担心只是臆测。实践之后,效率问题?Performance analysis之后,我没有发现是在智能指针这里,绝对没有。不要担心我的shared_ptr的vector不够大,遍历的不够多。那个软件是做log分析的,几千万行的log。
效率问题不用担心,事情并没有万事大吉,细节总是在实际应用中浮出水面。相比较而言,效率问题,早就置之脑后了。......【阅读全文】
发布时间:2013-09-02 10:19:32
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用—— 就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文 章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!
如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈了一下malloc()和free().这篇文章由浅入深(不见得有多深)分三个部分介绍主要内容。
一、malloc()和free()的基本概念以及基本用法:......【阅读全文】
发布时间:2013-04-11 15:34:37
class的初始化发生在构造函数体之前,即初始化列表(初始化列表未包含的编译器进行默认初始化,内置类型在列表或者赋值的效率一样),构造函数体内是赋值行为。《effective c++》条款4初始化顺序:base class先于derived class,class内的数据成员初始化按声明顺序进行。 《effective c++》条款4class各个access.........【阅读全文】