随笔分类 - C/C++
摘要:linux 通过dlopen来实现: 生成动态库:g++ -fPIC -shared triangle.cpp -o triangle.so 生成test主函数:g++ -fPIC test.cpp -ldl -o test 具体demo:http://files.cnblogs.com/files
阅读全文
摘要:查询引擎库介绍: http://www.infoq.com/cn/news/2012/10/Google-Supersonic/ Supersonic是一个面向列存储数据库的查询引擎库,它提供了一组数据变换原语。而且Google宣称,因为“大量使用了高速缓存感知算法、SIMD指令和矢量化执行,使之能
阅读全文
摘要:分支预测建议: http://www.cppblog.com/mysileng/archive/2014/09/29/208454.html 内存对齐: 属性暗示: http://www.cnblogs.com/sunyubo/archive/2010/12/20/2282084.html 汇编与锁
阅读全文
摘要:应用程序中使用插件技术,有利于日后的版本更新、维护(比如打补丁)和功能扩展,是一种很实用的技术。其最大的特点是更新插件时无需重新编译主程序,对于一个设计良好的应用系统而言,甚至可以做到业务功能的在线升级。本文介绍了linux下用C++实现插件的一个简单实例,希望能对大家有所启发。 为了能做到更新插件
阅读全文
摘要:boost::circular_buffer的push_back分析circular_buffer为了效率考虑,使用了连续内存块保存元素使用固定内存,没有隐式或者非期望的内存分配快速在circular_buffer头或者尾部插入,删除元素,并且是常量时间复杂度常量时间访问元素适合实时和对性能要求苛刻...
阅读全文
摘要:EBC英文全称为“Empty Base Class”,中文全称“空基类”。那什么是空基类呢?简单的说就是没有任何数据成员的类就称之为空基类。也就是EBC的类定义中不包含任何数据成员,那么这样一来可能大家会认为一个EBC的尺寸(sizeof)因该是0,确实按照定义而言因该是这样的,但是我们知道即使是...
阅读全文
摘要:昨天晚上,我徒弟跑过来讲,他的程序的内存占用居高不下,愿意是std::map的clear()没有效果。于是我让他用erase(begin,end); 试试也不行。代码如下:void release_map(void){ map testmap; for(int i=0; iSimplywraps::operatornewand::operatordelete.__gnu_cxx::malloc_allocatorSimplywrapsmallocandfree.Thereisalsoahookforanout-of-memoryhandler__gnu_cxx::debug_all...
阅读全文
摘要:在Redhat上安装Thrift公司的机器都是Redhat,所以边装边记录一下安装过程。安装过程参考文档:Thrift依赖的软件:http://wiki.apache.org/thrift/ThriftRequirements官方安装指南:http://wiki.apache.org/thrift/ThriftInstallationStep1:安装依赖autoconf版本低需要升级。./configue –prefix /usr, make, make install经典三步搞定libtool版本低需要升级。./configue –prefix /usr, make, make instal
阅读全文
摘要:pthread中提供的锁有:pthread_mutex_t, pthread_spinlock_t, pthread_rwlock_t。 pthread_mutex_t是互斥锁,同一瞬间只能有一个线程能够获取锁,其他线程在等待获取锁的时候会进入休眠状态。因此pthread_mutex_t消耗的CPU资源很小,但是性能不高,因为会引起线程切换。 pthread_spinlock_t是自旋锁,同一瞬间也只能有一个线程能够获取锁,不同的是,其他线程在等待获取锁的过程中并不进入睡眠状态,而是在CPU上进入“自旋”等待。自旋锁的性能很高,但是只适合对很小的代码段加锁(或短期持有的锁),自旋锁对CPU的占
阅读全文
摘要:单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显的很不优雅。使用全局对象能够保证方便地访问实例,但是不能保证只声明一个对象——也就是说除了一个全局实例外,仍然能创建相同类的本地实例。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例。单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这个成员函数
阅读全文
摘要:比较了std::map和boost::unordered_map; 后者性能略胜前者。准备使用dense_hash_map试试。简单的例子见http://www.cnblogs.com/dreamcs/articles/1782340.html官方的例子有#include <iostream>#include <google/dense_hash_map>using google::dense_hash_map; // namespace where class lives by defaultusing std::cout;using std::endl;using
阅读全文

浙公网安备 33010602011771号