![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 63
west_liu
这个作者很懒,什么都没留下…
展开
-
CMU15-445 2020Fall Project0-C++ primer
准备工作原创 2021-08-05 22:47:44 · 1953 阅读 · 0 评论 -
Google leveldb学习笔记一:基本架构与安装使用
简介LevelDB是一个Google编写的快速键值存储库,它提供从字符串键到字符串值的有序映射。基本架构LSM树存储引擎先说什么是存储引擎:存储引擎是存储系统的发动机,直接决定了存储系统能够提供的性能和功能存储系统的基本功能包括:增删读改,读取操作又可以分为随机读取和顺序扫描哈希存储引擎是哈希表的持久化表现,不支持顺序扫描,对应的存储系统为键值存储系统B-Tree...原创 2018-09-10 21:24:23 · 803 阅读 · 0 评论 -
《Linux高性能服务器》附带项目springsnil源码解析
源码地址安装及使用下载源码:git clone https://github.com/liu-jianhao/springsnail.git然后进入springsnil目录直接make即可生成可执行文件填写配置文件,我测试的是网站是网易云音乐,首先我先看看网易云音乐服务器的ip有哪几个:$ nslookup music.163.comServer: ...原创 2018-09-13 22:02:29 · 1216 阅读 · 0 评论 -
快速了解C++11新特性
C++11新特性nullptrnullptr用来表示一个指针指向所谓的no valueC++保证NULL其实就是0(其类型可以使int也可以是long)C语言中的NULL通常定义为(void*)0,这在C++中并不明确,NULL必须是个整数类型,否则你无法将NULL赋值给一个指针。这是因为C++中并没有定义从void*到任何其他类型的自动类型转换操作。从C++11开始应该使用nullp...原创 2018-09-25 19:46:41 · 164 阅读 · 0 评论 -
C++原子操作
为什么要使用原子操作读和写不是atomic编译器生成的代码有可能改变操作次序使用mutex两个问题都可以解决,但代价比较昂贵,所以用atomic取代。用例#include <atomic> // for atomics#include <future> // for async() and futures#include <thread&...原创 2018-10-08 21:16:11 · 1195 阅读 · 1 评论 -
CMU15-445数据库系统课程实验详解
CMU-15-445学完CMU15-445之后有很大的收获,特别做其中的实验,因此记录了一些笔记。课程地址CMU的数据库系统课程时间表实验代码课程简介该课程是CMU的数据库系统的基础课程,实验需要使用C++11,一共有四个实验:缓冲池管理器B+树并发控制记录和恢复实验代码在Lab目录下,如果想获得没完成实验前的代码,可以在github搜索,找找就有了。建议每次实验前都...原创 2018-11-10 10:31:17 · 8404 阅读 · 0 评论 -
C++设计模式
C++设计模式https://github.com/liu-jianhao/Cpp-Design-Patterns什么是设计模式“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。——Christopher Alexander如何解决复杂性?分解人们面对复杂性有一个常见的做法:即分而治之,将大问题分...原创 2018-11-10 10:32:56 · 6799 阅读 · 1 评论 -
leveldb源码阅读(一)
include/leveldb/slice.hslice是leveldb内部使用的字符串类,代码很简单。该类只有两个数据成员: const char* data_; size_t size_;函数成员也很简单,如通过各种方式构造,比较,移除前缀等等。util/coding.hcoding这个类是用来类型转换和压缩空间的,比如声明一个uint32类型的变量,要分配4个字节的空间,如果...原创 2019-01-05 16:52:13 · 4917 阅读 · 2 评论