【原创】LevelDB中的placement new
摘要:
刚才看Leveldb源码的时候,看到leveldb为了避免频繁的new/delete操作, 使用了Arena缓存 ,在缓存上面分配空间以后,使用 placement new 进行初始化详见 SkipList<Key,Comparator>::NewNode(const Key& key, int height)中的 return new (mem) Node(key);placement new 技术使c++中new的 分配空间 和 调用构造函数 这两个功能分开 ,只是在固定的地址调用构造函数。这个技术有利于程序员自己实现一个自己的缓存堆的功能:每次初始化一个对象都可以在一 阅读全文
posted @ 2012-05-10 11:22 aitilang 阅读(313) 评论(1) 推荐(0) 编辑