Fh's Blog

及时当勉励,岁月不待人。

在Golang中顺序容器有两种,一种是普通的数组,一种是切片。 数组(array) 数组创建方式分为两种,一种是通过字面值,一种是通过new 结果 首先注意到,数组在创建的时候必须是在[ ]中指明了元素个数,或者使用[...]结合{1, 2, 3}来...

发布 0 条评论

在go中要主动把变量定义在堆上只有这两中方法,make与new,二者间的区别是非常大的。 (ps: 为何要强调是主动呢?因为go会做逃逸分析,编译器会帮你去最终哪些变量会放在堆上,因此在go中是不需要像C/C++一样关心变量的开辟位置的) n...

发布 0 条评论

上一篇我们熟悉了SDS字符串的基本结构以及一些基本方法,我们接下来继续深入看一些方法比较重要的方法,别忘了我们的目的是为了找出SDS到底比glibc的字符串好在哪儿。 以下代码位于sds.c 首先说明一下这个工具函数,该函数会根据参...

发布 0 条评论

前言 SDS是一个C的动态字符串库,即 redis抛弃了glibc的字符串库,自己实现了一个更好的字符串库,为什么要造这个轮子,SDS比起glibc的一套更好在哪儿?这就是我们要探究的核心问题。(以下代码位于sds.h) SDS字符串的类型很简单 ...

发布 0 条评论

开始进入zmalloc的实现,以下代码位于zmalloc.c 位于最开头的是zlibc_free,注释里讲得很明白,在包含zmalloc.h之前,先定义zlibc_free并且包含glibc中的stdlib.h,这样可以给我们提供了至少glibc的free实现,如果zmalloc.h中不是...

发布 0 条评论