go指令记录
项目初始化与依赖管理 (Go Modules)这是现代 Go 开发最常用的指令集。 指令 用途 备注 go mod init <name> 初始化一个新的 Go 模块 生成 go.mod 文件 go mod tidy 整理依赖 自动添加缺失的包,移除未引用的包(最常用,每次引入新库都会用) go mod download 下载依赖包到本地缓存 通常 tidy 会自动处理 go mod vendor 将依赖包缓存到项目下的 vendor 目录 某些企业内网环境需要 go mod graph 打印模块依赖图 用于排查复杂的版本冲突 go get <path>@v1.x 下载并添加特定版本的依赖 会更新 go.mod 编写、编译与运行这是代码循环(Code-Build-Run)的核心。 指令 用途 技巧 go run . 直接运行当前目录下的代码 适合临时调试,不会产生二进制文件(本地开发联调) go build 编译代码 默认生成与目录同名的可执行文件(最后容器化部署) go install 编译并将结...
golang建立项目以及go-module和vendor的区别
$GOPATH默认位置 操作系统 默认路径示例 环境变量表示法 macOS /Users/用户名/go $HOME/go Linux /home/用户名/go $HOME/go Windows C:\Users\用户名\go %USERPROFILE%\go not a valid zip filegithub.com/shirou/gopsutil/process: zip: not a valid zip file 此类问题多是因为GOPROXY所导致。 使用https://mirrors.aliyun.com/goproxy/,direct的时候,在进行go build/go mod tidy等指令时就会出现此错误。 换成https://goproxy.cn,direct即可。 123456789101112131415161718192021$ mkdir go-example && cd go-example#GO111MODULE=on,使用go module,不使用GOPATH#GO111MODULE=off,使用GO...
robfig_cron_v3,cron工具类
基于(robfig_cron开发一个小工具)包: https://github.com/robfig/cron123go get github.com/robfig/cron/v3@v3.0.0import "github.com/robfig/cron/v3" util123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104package utilimport ( "github.com/pkg/errors" cron "github.com/robfig/cron/v3" "sync")// Crontab crontab managertype ...
pprof调优学习
Go性能优化 测试代码: https://github.com/behappy-project/behappy-url-shortener Go语言项目中的性能优化主要有以下几个方面: CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据 Memory Profile(Heap Profile):报告程序的内存使用情况 Block Profiling:报告 goroutines 不在运行状态的情况,可以用来分析和查找死锁等性能瓶颈 Goroutine Profiling:报告 goroutines 的使用情况,有哪些 goroutine,它们的调用关系是怎样的 采集性能数据Go语言内置了获取程序的运行数据的工具,包括以下两个标准库: runtime/pprof:采集工具型应用运行数据进行分析 net/http/pprof:采集服务型应用运行时数据进行分析 pprof开启后,每隔一段时间(10ms)就会收集下当前的堆栈信息,获取各个函数占用的CPU以及内存资源;最后通过对这些采样数据进行分析,形成一个性能分析报告。...
