leveldb学习
阿木木_03312
大龄屌丝码农
展开
-
leveldb 04 SkipList学习
学习了levelDB源码分析-Skiplist 1. 在levelDB里Skiplist是个模板类。 它的声明和定义全部都放在了.h文件中。 普通class一般是把声明和定义分别放到.h和.cpp文件里的,而模板类必须把声明和定义都放到.h文件中。具体原因,参考学习博客 c++ 模板类 声明和定义都放在.h文件的原因. 2. 首先声明了 struct Node,这是前置声明,因为Node类是在原创 2018-01-02 18:03:53 · 146 阅读 · 0 评论 -
leveldb 01 slice 学习
// Copyright (c) 2011 The LevelDB Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. See the AUTHORS file for names of原创 2017-12-14 17:06:36 · 192 阅读 · 0 评论 -
leveldb 02 status学习
学习了 巴山独钓 的levelDB源码分析-Status 1. 主要的声明和inline定义(隐式inline和显式inline关键字定义)都放在了status.h文件中。 只有CopyState,Status和ToString这3个代码比较多和复杂一些的函数放在了status.cc文件中去定义。 2. 发现leveldb中的显式inline都是采用如下形式定义在.h文件中。 我自己的话一般会原创 2017-12-14 17:50:48 · 208 阅读 · 0 评论 -
leveldb 03 Arena学习
学习了 levelDB源码分析-Arena和leveldb学习:内存池Arena图片是上面第一篇博客里的: 成员变量blocks_是个vector,它的每个元素都是一个char*指针,指向一段内存(或者说是char[]数组). 在Arena的析构函数里,会遍历该vector的每个元素,使用delete[]删除所有分配的内存。 blocks_的主要作用也在于此,保存了分配的所有内存的地址,在Aren原创 2017-12-14 18:49:28 · 206 阅读 · 0 评论