listpack
以后都在 github 更新,请戳 redis listpack
目录
相关位置文件
- redis/src/listpack.c
- redis/src/listpack.h
- redis/src/util.c
- redis/src/util.h
ll2string
我发现了一个有趣的算法, 它可以把 long long
类型转换为 string类型(在 C 里面是
char *` 数组)
算法的基本概念和性能的提升在这篇文章里已经详细的描述了 Three Optimization Tips for C++, 并且最终版被 redis 里的 redis/src/util.c
对应文件下的函数所采用并进行改进
/* P01 是 10, P02 是 10 * 10, P03 是 10 * 10 *10, ... 以此类推
uint32_t digits10(uint64_t v) {
if (v < P01) return 1;
if (v < P02) return 2;
if (v < P03) return 3;
if (v < P12) {
if (v < P08) {
if (v <