源码
文章平均质量分 78
qq_16899143
这个作者很懒,什么都没留下…
展开
-
golang map原理的一点研究
扩容时会创建新的桶和溢出桶,此时如果访问map,会在旧桶和新桶中查询值,如果写入或删除旧桶中的元素,则会导致目标旧桶中的元素被分发到对应的新桶。map的所有桶都是连续的,其中mapextra.overflow 占据了一部分连续的空间用来分配溢出桶,每当hmap.buckets中的桶发生溢出时就会到mapextra.overflow 的空间中申请一个桶。因为一个bmap代表的桶只存放8个键值对,所以需要有溢出桶保存溢出的键值对,溢出桶形成一个链,overflow则保存了下一个溢出桶的指针。原创 2023-02-14 19:59:43 · 189 阅读 · 1 评论 -
golang fmt.Sprintf(“%.2f“) 的舍入问题
首先,fmt.Sprintf("%.2f")使用的是banker rounding 而不是四舍五入原创 2023-02-13 19:39:16 · 2769 阅读 · 2 评论 -
prometheus increase函数统计得到小数
今天发现prometheus的increase函数得到了小数,研究一下源码,以下是rate/increase/delta 对应的计算函数原创 2023-02-10 12:02:00 · 1086 阅读 · 0 评论