golang
已收录文章:12585篇
-
通过代码优化提升Golang框架性能:数据结构选择:选择合适的Go数据结构,如map和sync.Pool。并发控制:使用go关键字启动goroutine,限制goroutine数量,并使用context或sync.WaitGroup管理并发任务。内存管理:使用unsafe.Pointer指针,使用esc检测消除逃逸指针,并使用pprof分析和优化内存占用情况。网络优化:使用net/http/ServeMux处理HTTP请求,设置连接复用,并压缩响应。148 收藏
-
gRPC微服务API演进的兼容性策略包括:1.添加非required字段保证客户端兼容;2.删除字段前标记为deprecated并逐步移除;3.修改字段类型时使用oneof实现兼容;4.消息类型变化时按版本选择不同结构;5.枚举值新增安全,删除需用reserved保留;6.接口变化避免删改已有方法;7.通过目录结构或metadata实现版本控制;8.利用拦截器处理版本路由;9.设计阶段即考虑兼容性、使用语义化版本号、提供文档与测试;10.灰度发布采用流量染色、用户或地域划分、蓝绿部署;11.监控错误率、延148 收藏
-
make介绍 借助Makefile我们在编译过程中不再需要每次手动输入编译的命令和编译的参数,可以极大简化项目编译过程。 make是一个构建自动化工具,会在当前目录下寻找Makefile或makefile文件。如果147 收藏
-
1、算术运算符 很常规,和java一样。 样例代码如下 // 算术运算符 func base() { a := 1 b := 20 c := 31 d := -1 fmt.Printf(" + -> %d\n", a+b) fmt.Printf(" - -> %d\n", b-a) fmt.Printf(" * -> %d\n", b*d) fmt.Printf(" / -147 收藏
-
背景 公司一个golang的项目,使用到了公司的私有仓库,去执行go mod tidy(下载依赖)的时候,到download公司私有库的时候就报错,报错信息也不明显,只是提示找不到影响版本unkown revision 小知识147 收藏
-
问题内容 在看go入门指南时遇到一个问题,下面的程序为什么会产生死锁。 package main import ( "fmt" ) func f1(in chan int) { fmt.Println(<-in) } func main() { out := make(chan int) out <- 2 go f1(ou147 收藏