golang
已收录文章:12586篇
-
在Golang中减少反射调用的性能损耗主要有三种方式:1.优先使用类型断言代替反射,因类型断言仅进行直接类型检查且无额外内存分配;2.缓存函数指针,在初始化阶段执行一次反射后缓存为普通函数闭包以供复用;3.通过接口抽象设计规避反射,定义统一行为接口并由具体结构体实现,从而提升性能与代码可维护性。218 收藏
-
在Golang中定义命令接口需声明包含Execute方法的接口,具体命令对象通过实现该接口封装操作,客户端通过调用者执行命令,此模式支持解耦、可撤销操作与请求记录,虽增加复杂性但提升灵活性,可结合函数式编程简化实现,并通过添加Undo方法和历史记录支持撤销,还能通过返回error处理执行失败,常与组合、策略、备忘录模式结合用于GUI、事务处理和Web请求等场景,最终实现结构清晰且易于扩展的代码设计。218 收藏
-
bufio能优化网络IO的核心在于减少系统调用次数,1.它通过缓冲机制将多次小读写合并为一次大操作,降低上下文切换开销;2.使用bufio.Reader和bufio.Writer可分别实现缓冲读取和写入,需注意写入后必须调用Flush()将数据真正发送;3.缓冲区大小应根据应用场景权衡,可通过.NewReaderSize()和.NewWriterSize()自定义,建议通过基准测试确定最优值;4.可结合连接池、多路复用、零拷贝和TCP参数调优等方法进一步提升网络IO性能,最终实现高效稳定的网络通信。218 收藏
-
www.bilibili.com/video/BV1Hr… 一、goctl 的由来 1. goctl 的诞生 goctl 的最早功能是为了解决 GRPC 内网调试问题,大约是在 2019 年,在我们的生产环境中,rpc 是内网隔离的,不可通过外网访问,为了217 收藏
-
其实我自己接触Go语言也还不到一年,20年的10月我才开始学Go的。 我自己也并不是很懂,但是我希望我能帮助到你学习Go语言,我们可以一起学习交流~ Go语言的吉祥物—金花鼠我一直以为是土拨217 收藏
-
利用channel进行模拟令牌桶对访问进行限流 func FW(max int,duration time.Duration){ //定义一个channel ,进行初始化 contain := make(chan bool , max) for i := 0 ; i < max ; i ++{ contain <- true//写入channel } go func(217 收藏