提高C++性能的编程技术
文章平均质量分 80
五山小新新
希望每天6点下班,然后逛超市,买水果,买牛奶,看美女。
展开
-
虚函数
C++对C的共享原创 2014-08-22 23:06:04 · 526 阅读 · 0 评论 -
标准模板库
11.2 插入原创 2014-08-23 09:26:31 · 509 阅读 · 0 评论 -
返回值优化
返回值优化,是一种属于编译器的技术,它通过转换源代码和对象的创建来加快源代码的执行速度。RVO = return value optimization。 class Complex//复数{ friendd Complex operator + (const Complex & , const Complex&);public: Conplex(原创 2014-08-23 00:58:15 · 622 阅读 · 0 评论 -
C++内联使用技巧
内联的总结:使用条件:短小,调用频繁的函数内联的缺点:增加了编译的时间,不便于调试内联的优点:避免了函数调用带来的开销,同时为编译器进一步优化提供可能(调用间的优化编译器一般无能为力,但是内联后编译器可以进一步优化)。对于一些微小的方法内联(一般就是几条指令),可以减少最终的可执行文件(因为调用开销也需要一些指令的)内联不当的后果:造成代码膨胀,导致与性能相关的方负原创 2014-08-23 02:02:11 · 504 阅读 · 0 评论 -
单线程内存池
c++ efficient 的第六章,看书笔记,顺便说下理解。对于一般直接 new 与delete 性能较差,可以自己管理写内存的申请与释放。版本0:class Rational{public: Rational(int a=0, int b =1 ): n(a),d(b){}private: int n; int d;};原创 2014-08-23 01:09:51 · 571 阅读 · 0 评论 -
构造函数与析构函数
2.1继承原创 2014-08-22 23:04:16 · 578 阅读 · 0 评论 -
多线程内存池实现
多线程的内存池是基于模板的类:[cpp] view plaincopytemplate typename POOLTYPE,typename LOCK> class MTMemoryPool { public: void* alloc(size_t size); void free(void* someE原创 2014-08-23 01:36:30 · 985 阅读 · 0 评论 -
多线程内存池
如果一个内存池需要线程同步了,估计和默认的内存操作也差不了多远了。现在对内存操作的优化只是在优化线程同步操作上面了。默认的lock和unlock可能实现得过于完美,因而要求更多的cpu周期。如果选择更原子的lock和unlock实现,还是可以加快内存操作的速度的。多线程内存池在实现上也就是在申请和释放外面包裹了一对加锁和解锁操作而已。如果我们采用模板编程,就可以实现一个功能强悍的模原创 2014-08-23 01:32:06 · 1029 阅读 · 0 评论 -
跟踪实例
1.1 初步跟踪的实现原创 2014-08-22 14:04:57 · 560 阅读 · 0 评论 -
临时对象
说个题外话#include using namespace std;class A{public: char a; char b; char c;public: A(char aa, char bb=97, char cc=97):a(aa),b(bb),c(cc){}};int main(){ A e=98; c原创 2014-08-23 01:06:26 · 556 阅读 · 0 评论 -
优化
14.2 缓存 Wen原创 2014-08-25 11:27:44 · 554 阅读 · 0 评论