
编程
文章平均质量分 57
Pekue
这个作者很懒,什么都没留下…
展开
-
Redis之HyperLogLog算法原理
Redis HyperLogLog算法原理原创 2022-07-19 17:48:13 · 394 阅读 · 1 评论 -
ip2region 设计与实现
ip2region设计与实现原创 2022-07-19 17:45:19 · 512 阅读 · 0 评论 -
Golang 栈内存与堆内存
Golang 栈内存 堆内存 内存逃逸原创 2022-05-25 14:16:12 · 1218 阅读 · 0 评论 -
Go语言的函数调用栈
函数栈帧我们知道,Golang可以把程序直接编译成.exe可执行文件,运行时,可执行文件被加载到内存,这些个机器指令对应到虚拟地址空间中,位于代码段(虚拟地址空间分别有:栈、堆、数据段、代码段)。在这其中,如果在一个函数调用另一个函数,编译器就会对应生成一条call指令,每个函数最后都有一条ret指令,负责函数结束后跳回到调用处。函数执行时,需要有足够的空间存放局部变量、参数、返回值等信息,这段空间对应虚拟地址空间中的栈。分配给函数的空间叫做函数栈帧,这就是咱们的主角了。栈底通常叫栈基bp,栈顶又叫原创 2021-06-02 16:26:29 · 527 阅读 · 0 评论 -
Go语言的Map
哈希表说到Map,键值对的存储,我们就会想到哈希表,哈希表通常会有一堆桶来存储键值对,一个键值对来了,就根据哈希规则选择一个桶,选择的桶冲突的话,就使用开放地址法、链表法等来处理冲突,这些都都比较简单,我就先不写到这块了。关键字段Map的底层实现就是哈希表,map类型变量本质上是一个指针,指向hamp结构体,其中关键的字段有:count(int):键值对数目B(uint8):记录桶(用来存放map)的数目2^Bbuckets(unsafe.Pointer):记录桶的位置oldbucket原创 2021-06-02 14:59:48 · 178 阅读 · 0 评论 -
关于内存对齐与其在GO中应用
嘛是内存对齐?为了保持顺序高效的读取各种数据,编译器会把各种类型的数据排列到合适的地址,并占用合适的长度,这,就是内存对齐。不同类型的对齐边界不同类型有不同的大小,自然会有不同的对齐边界,比如int16占用两个字节,对齐边界就是2,int32占用四个字节,对齐边界就是4,那么在奇数个int16后是不能紧跟int32的,因为这样是无法便捷快速的找到int32这个类型对应的数据。解决办法是往后空2个字节,这个空2个字节怎么算出来的呢?就是要算出当前的地址是否可以整除你的对其边界。不同的系统和语言中原创 2021-06-02 14:44:32 · 146 阅读 · 0 评论 -
Go语言的Slice
Slice结构主要包含三个部分:地址、长度、容量基础结果Slice一般都会依赖一个底层数组(数组和切片的最主要区别数组长度不可变;切片长度可变),通过make得到的Slice会直接分配Slice的三大金刚,长度容量可指定,默认为0;通过new得到的Slice不会分配Slice的三大金刚,只是给你个地址,这个地址指向三大金刚的位置,也就是指针,不过这个时候三大金刚也是未初始化的。未初始化,就不能直接操作、赋值之类的(new得到的变量可通过append进行添加值,然后分配三大金刚)那数组是什么Sl原创 2021-06-02 14:36:59 · 179 阅读 · 1 评论 -
计算机里的字符串与GO语言中的字符串
引入OK,计算机中使用0和1存储所有数据,对于数字,容易理解,通过二进制可以表示和存储。那么字符串呢?首先的解决方法是,定义一个字符集,比如OK我是夏洛,分别对六个字符进行对应编码。所以最初的ASCII字符集出现了,不过由于较早,所以很多字符没收入,比如中文,经过一系列增加修订,一直有很多字符集出现。最终Unicode出现,制霸统一,实现跨语言,跨平台的文本转换和处理。如何划分好了,编码解决了,如何读取?一长串内容该怎么划分?首先的解决办法是,每一个字符都使用固定长度进行编码,可行,也就是原创 2021-06-02 14:26:20 · 122 阅读 · 0 评论 -
什么是JWT
定义JWT(Json Web Token)是一个开放标准,定义了一种紧凑且自成一体的方式,以便将各方之间的信息安全地传输为JSON对象。使用场景授权:最常用的使用场景,登陆后,每个后续请求将包括JWT,允许用户访问该令牌允许的路线、服务和资源。单一登录是当今广泛使用 JWT 的一项功能,因为它的开销很小,并且能够在不同领域轻松使用。信息交换:JSON网络币之类的,不太常用。结构主要由三部分组成:Header(头部)、Payload(有效载荷)、Signature(签名),中间使用.隔原创 2021-05-31 16:32:18 · 138 阅读 · 0 评论