
golang
卢舍那
体系结构,Linux内核,区块链,分布式计算,嵌入式。
展开
-
go mod指定版本
背景golang依赖包有时会因为版本问题,导致接口不匹配解决可以在go.mod中指定版本,例如:replace google.golang.org/grpc => google.golang.org/grpc v1.26.0原创 2021-01-21 20:05:17 · 7363 阅读 · 0 评论 -
go mod
go mod作用Go.mod是Golang1.11版本新引入的官方包管理工具用于记录依赖包具体版本的问题,方便依赖包的管理。与传统依赖区别传统go依赖包首先在vendor里找,如果vendor里没有依赖则从gopath/src里找,如果还没有则从goroot里找,如果还没有就报错了。传统go project建立在gopath/src下,使用go mod后则可以建立在任意目录下,依赖通过go.mod文件查找go mod使用方法1.首先将go的版本升级为1.11以上2.设置GGO111MODULE=原创 2020-07-20 17:27:47 · 308 阅读 · 0 评论 -
golang interface{} 入参
func sliceEqual(a, b []interface{}) bool {}a := []*Student{}b := []*Student{}sliceEqual(a, b)compile err:cannot use a (type []*Student) as type []interface {} in argument to sliceEqualgolang...原创 2018-05-04 11:00:06 · 20983 阅读 · 0 评论 -
区块链项目:golang内存泄漏,goroutine泄漏排查
一、pprof的使用pprof的启动及操作import net/http/pprofgo func() { http.ListenAndServe("0.0.0.0:11181", nil) }()然后通过网页打开即可:ht原创 2019-02-24 21:34:28 · 13571 阅读 · 0 评论 -
fabric 1.2编译出错:common/crypto/tlsgen/key.go:36:20: undefined: x509.MarshalPKCS8PrivateKey
fabric 1.2编译出现如下错误: 解决:这个由于golang版本太低,有些类型没有导致,升级golang版本到1.10.3,便可以编译通过。原创 2018-07-23 11:23:56 · 16041 阅读 · 0 评论 -
golang coredump分析
背景最近在分析golang的一个内存泄漏问题。一般来讲,使用golang自带的pprof工具就可以分析内存的使用,协程情况,是否有block等情况。但是我们项目中调用了C库,导致C库的一些东西没法通过pprof来进行监控分析。实际上通过pprof来监控程序的话,内存是稳定的,但是占用Linux的内存是一直增长的,即RES一直增长,实际上程序是有泄漏的。怀疑是使用C库导致,所以通过coredump...原创 2018-10-12 11:12:44 · 20030 阅读 · 0 评论