tech
SwissTable 会成为 Golang std map嘛?
SwissTable 会成为 Golang std map嘛?. 2022年,字节跳动给 Golang 提了 issue 建议把map的底层实现改成SwissTable的。2023年,dolt写了一篇博客 SwissMap: A smaller, faster Golang Hash Table 分享他们 设。
tech
SwissTable 会成为 Golang std map嘛?. 2022年,字节跳动给 Golang 提了 issue 建议把map的底层实现改成SwissTable的。2023年,dolt写了一篇博客 SwissMap: A smaller, faster Golang Hash Table 分享他们 设。
tech
Avoid memory leaks in Go by closing files and HTTP responses, managing goroutines properly, and using `defer` wisely. #GoLang #MemoryManagement
tech
常见限速算法的分析与实现. 在软件架构中,限流是一种控制资源使用和保护系统安全的重要机制。它通过限制在一定时间内可以处理的请求数量,来防止系统过载,确保系统在高负载情况下仍能保持稳定运行。 本文的目标是分析和实现几种常见的限流算法,以及分析他们优缺点。最后我们探讨一下真实业务代码中的一些限流设计。 This。
tech
Common Rate Limiting Algorithms: Analysis and Implementation. Rate limiting is a critical mechanism in software architecture that controls resource usage a。
tech
Go Proposal: A New Json Lib Ep1. Background JSON is a lightweight data interchange format that has been favored by developers for its flexible features sin。
tech
Go 提案: JSON v2 来了. 背景 JSON 是一种轻量级的数据交换格式,Go 语言的 encoding/json 包自诞生以来已有十年之久,它凭借其灵活的特性赢得了开发者的青睐。开发者可以通过结构体标签自定义字段的 JSON 表现形式,也可以让 Go 类型自定义其在 JSON 中的表现形式。然而,随。
tech
Recently, I discovered that the Go standard library includes a built-in implementation of varint, found in encoding/binary/varint.go. This implementation is similar to the varint used in protobuf. Using the Golang standard library's varint source code, we will systematically learn and review the concept of
tech
最近发现 Golang 标准库竟然自带了 varint 的实现,代码位置在 encoding/binary/varint.go,这个跟protobuf里面的varint实现基本是一致的。刚好借助 golang 标准库的 varint 源码,我们来系统地学习和梳理下 varint。 熟悉 protobuf 的人肯定对 varint 不陌生,protobuf 里面除了带 fix (如 fixed32、fixed64) 之外的整数类型, 都是 varint 编码。 varint 的出现主要是为了解决两个问题: 1. 空间效率:以 uint64 类型为例,可以表示的最大值为 18446744073709551615。然而在实际业务场景中,我们通常处理的整数值远小于 uint64 的最大值。假设在我们的业务中,需要处理的整数值仅为 1,但在网络传输过程中,
tech
Use macOS's built-in tool `dmc` to simulate slow disk performance for testing. It offers various profiles to adjust speed easily.
tech
Decrypt Go: `runtime.SetFinalizer`. If we want to do some resource release before an object is GC, we can use returns.SetFinalizer . It’s like executing de。
tech
本文介绍了Go语言中的runtime.SetFinalizer函数,探讨了如何在对象被垃圾回收之前执行清理操作。通过示例代码,展示了SetFinalizer的用法及其潜在问题,如内存泄漏和对象生命周期延长。文章还提到在实际应用中,SetFinalizer的使用较少,但在Go源码中有广泛应用,提供了对资源管理的深刻见解。
tech
如何在 Go 中避免内存泄露?关注关闭文件、HTTP 响应体、字符串管理及 goroutine 使用。及时释放资源,避免循环引用,使用 defer 时要小心,助你写出健壮的代码!#GoLang #内存泄露