golang
文章平均质量分 78
码出钞能力
old coder
展开
-
golang长连接的误用
golang长连接的坑原创 2024-07-22 16:10:27 · 1111 阅读 · 0 评论 -
cgo is not Go
Some people, when confronted with a problem, think “I know, I’ll use cgo.” Now they have two problems.转载 2024-07-21 02:06:40 · 59 阅读 · 0 评论 -
golang实现的ab测试http代理工具
ab压测工具的辅助小工具,golang实现的http代理程序。原创 2024-07-19 01:16:49 · 484 阅读 · 0 评论 -
golang性能调试工具net/http/pprof
golang通过页面在线调试原创 2024-07-17 14:41:18 · 965 阅读 · 0 评论 -
Golang源码探索(1)----编译和调试源码
lldb调试go程序转载 2024-06-04 15:17:44 · 173 阅读 · 0 评论 -
Golang源码探索(2)----协程的实现原理
虽然现在引入了协程的语言越来越多,但go中的协程仍然是实现的是最彻底的,这篇文章将通过分析golang的源代码来讲解协程的实现原理。转载 2024-06-04 15:12:47 · 68 阅读 · 0 评论 -
Golang源码探索(3)----GC的实现原理
Golang从1.5开始引入了三色GC, 经过多次改进, 当前的1.9版本的GC停顿时间已经可以做到极短.停顿时间的减少意味着"最大响应时间"的缩短, 这也让go更适合编写网络服务程序.这篇文章将通过分析golang的源代码来讲解go中的三色GC的实现原理.转载 2024-06-04 15:07:39 · 70 阅读 · 0 评论 -
golang不知道参数类型的情况下通过反射调用函数或方法
go反射的用法,go回调的用法。原创 2024-05-13 16:02:44 · 265 阅读 · 0 评论 -
golang实现时间优先队列&定时器最小堆
golang实现定时器最小堆原创 2024-05-13 10:21:27 · 128 阅读 · 0 评论 -
CGO内存模型--摘自《Go语言高级编程》
CGO 是架接 Go 语言和 C 语言的桥梁,它使二者在二进制接口层面实现了互通,但是我们要注意因两种语言的内存模型的差异而可能引起的问题。转载 2024-05-09 10:14:35 · 71 阅读 · 0 评论 -
golang最简服务器
docker测试使用原创 2024-04-19 16:49:27 · 124 阅读 · 0 评论 -
golang、java、redis中的hash算法
如何设计并实现一个线程安全的 Map?转载 2024-03-04 13:48:01 · 216 阅读 · 0 评论 -
记一次gorm连接池打满,连接不释放的问题
gorm踩坑记录转载 2023-12-13 17:43:37 · 985 阅读 · 0 评论 -
golang平滑重启库overseer实现原理
overseer连接处理的方式原创 2023-10-27 22:26:33 · 1158 阅读 · 0 评论 -
golang大小端字节序
如何使用golang区分大小端原创 2023-10-18 13:01:17 · 552 阅读 · 0 评论 -
go test传参问题
golang单测传参问题原创 2023-09-12 17:39:20 · 178 阅读 · 0 评论 -
golang包管理与git踩坑集锦
记录golang包管理时遇到的问题原创 2023-07-16 00:55:50 · 536 阅读 · 0 评论 -
cgo性能优化技巧
cgo gccgo性能优化原创 2023-06-30 11:07:34 · 231 阅读 · 0 评论 -
gccgo和原生go:判断字符串和byte切片是否相等的性能
gccgo的优势和劣势。原创 2023-06-27 10:58:12 · 726 阅读 · 0 评论 -
gcc版本和golang版本的对应关系
The GCC 12 and 13 releases include a complete implementation of the Go 1.18 standard library.转载 2023-06-23 11:09:07 · 997 阅读 · 0 评论 -
golang:fmt.Print引发的signal arrived during cgo execution
signal arrived during cgo execution 与 协程调度原创 2023-06-16 12:58:36 · 1051 阅读 · 0 评论 -
docker执行报错:no such file or directory: unknown
golang静态编译原创 2023-04-18 01:11:49 · 2701 阅读 · 0 评论 -
HashMap与红黑树
如果hash桶较小,数据量较大,就会导致链表非常的长。所以就出现了红黑树。转载 2023-03-28 01:05:17 · 690 阅读 · 0 评论 -
golang中的缓存一致性、内存序、内存屏障与CAS原理
从CPU缓存架构到内存屏障转载 2023-03-28 01:01:12 · 1381 阅读 · 0 评论 -
golang的两种网络模型
Golang 经典 netpoll 模型:goroutine-per-connection,适用于在连接数不是瓶颈的情况。RawEpoll 模型:也就是 Reactor 模式,I/O 多路复用(I/O multiplexing)+ 非阻塞 I/O(non-blocking I/O)的模式。转载 2023-03-22 19:48:57 · 501 阅读 · 0 评论 -
通过go-micro了解golang的Functional Options和Interface Oriented
本文主要介绍了go-micro的整体设计风格:Functional Options和Interface Oriented,掌握这两点后,其实就可以比较轻松地阅读go-micro源码了。转载 2022-11-28 20:28:08 · 245 阅读 · 0 评论 -
图解Go协程原理及实战
线程、协程的原理,以及协程的基本使用。转载 2022-10-25 18:47:44 · 667 阅读 · 0 评论 -
Go标准库:context详解
Context的主要功能就是用于控制协程退出和附加链路信息。核心实现的结构体有4个。转载 2022-10-25 18:32:41 · 1379 阅读 · 0 评论 -
Go内存管理一文足矣
golang内存分配、堆内存、栈内存、缓存层。转载 2022-10-25 18:25:16 · 477 阅读 · 0 评论 -
曹春晖:谈一谈 Go 和 Syscall
本文能够帮助读者理解 Go 语言怎么与系统打交道,同时了解底层 runtime 在 syscall 优化方面的一些当心思,从而更为深刻地理解 Go 语言。转载 2022-09-25 23:46:32 · 1371 阅读 · 0 评论 -
Go的fasthttp快的秘诀:简单事情做到极致
fasthttp的作者并不是拍脑门优化的,是通过go tool pprof --alloc_objects your-program mem.pprof哪里有内存消耗然后针对性优化。转载 2022-08-31 18:40:38 · 1398 阅读 · 0 评论 -
如何缓解Golang大型游戏服务器的GC压力
Golang的垃圾回收器使用的是并行三色标记回收算法。该算法对比分代算法的最大问题就是,无法区分年轻代和老年代对象,如果老年代对象非常多的话,新生代对象的回收效率就会下降。转载 2022-08-31 17:53:48 · 1111 阅读 · 0 评论 -
Golang调度器GPM原理与调度全分析
Goroutine调度器的GMP模型及设计思想转载 2022-08-31 17:49:45 · 974 阅读 · 0 评论 -
go1.17+中的GOPATH
gopath设置原创 2022-08-27 01:41:30 · 759 阅读 · 0 评论 -
Golang 中 map 探究
map 在官方中就明确表示不支持并发读写, 所以并发对 map 进行读写操作本身就是不正确的。转载 2022-08-27 01:28:51 · 348 阅读 · 0 评论 -
Golang微服务简洁架构实战
本文从简洁架构的理论出发,依托trpc-go目录规范,简单阐述了整体代码架构如何划分,具体trpc-go服务代码实现细节,和落地步骤,并讨论了和DDD的区别。转载 2022-08-27 01:21:54 · 2199 阅读 · 0 评论 -
Go1.19 那些事:国产芯片、内存模型等新特性,你知道多少?
感觉时间过得很快,Go1.18 发布没太久,泛型还在风风火火,看了看上次的投票结果,绝大部分同学还没有在生产环境应用泛型。转载 2022-08-27 01:12:40 · 382 阅读 · 0 评论 -
Golang内存管理的前身:TCMalloc
本文首先简单介绍TCMalloc及其使用方法,然后解释TCMalloc替代系统的内存分配函数的原理,然后从宏观上讨论其内存分配的策略,在此之后再深入讨论实现细节。转载 2022-07-24 20:56:20 · 1122 阅读 · 0 评论 -
Go 1.18 的那些事——工作区、模糊测试、泛型
2022 年 3 月 15 日,Google 发布了万众瞩目的 Golang 1.18,带来了好几个重大的新特性。转载 2022-07-13 18:05:23 · 279 阅读 · 0 评论 -
浅谈Golang两种线程安全的map
sync.map是用读写分离实现的,其思想是空间换时间。和map+RWLock的实现方式相比,它做了一些优化:可以无锁访问read map,而且会优先操作read map,倘若只操作read map就可以满足要求(增删改查遍历),那就不用去操作write map(它的读写都要加锁),所以在某些特定场景中它发生锁竞争的频率会远远小于map+RWLock的实现方式。...转载 2022-06-07 19:13:23 · 1208 阅读 · 0 评论