文章456
标签244
分类59
LevelDB使用示例

LevelDB使用示例

LevelDB 是一个持久化的 k/v 数据库,Chrome浏览器中涉及的 IndexedDB,就是基于 LevelDB 构建而成的;

本文讲解了如何简单的使用 LevelDb,后面也会继续写系列文章对LevelDB的源码进行分析;

源代码:


简单实现C++内存分配跟踪

简单实现C++内存分配跟踪

有的时候我们想要跟踪我们的代码到底分配了多少的内存,一个常用的方法是使用 Valgrind 工具进行内存分析;

但是对于一些场景,我们不想这么麻烦,那么此时我们可以通过简单的覆盖 malloc、free 等函数实现!

源代码:


浅谈协程

浅谈协程

浅谈函数调用

浅谈函数调用

在任意一门编程语言中,函数调用基本上都是非常常见的操作;

我们都知道,函数是由调用栈实现的,不同的函数调用会切换上下文;

但是,你是否好奇,对于一个函数调用而言,其底层到底是如何实现的呢?

本文讲解了函数调用的底层逻辑实现;

相关文章:


C++主流编译器总结

C++主流编译器总结

由于历史原因,C++存在多个厂商的编译器,主流的包括GCC、G++、MSVC、clang等;

本文介绍了这几个编译器之间的关系,以及各个编译器常用的命令参数;


C++编译器优化中的RVO和NRVO

C++编译器优化中的RVO和NRVO

C++中使用GoogleTest进行单元测试

C++中使用GoogleTest进行单元测试

深入理解C++中的move和forward

深入理解C++中的move和forward

在C++11标准之前,C++中默认的传值类型均为Copy语义,即:不论是指针类型还是值类型,都将会在进行函数调用时被完整的复制一份!

对于非指针而言,开销及其巨大!

因此在C++11以后,引入了右值和Move语义,极大的提高了效率;

本文介绍了在此场景下了两个常用的标准库函数:move和forward;

源代码:


C++库之fmt

C++库之fmt

What is object slicing?

What is object slicing?