
golang
文章平均质量分 81
xyc1211
我不记得读过的书,就像不记得吃过的饭一样;即便如此,它们还是造就了我。
展开
-
go性能分析 pprof
会明显发现比官方工具链的PProf精致一些,并且多了FlameGraph(火焰图)直接读取golangprofiling数据,并生成一个火焰图的svg文件。-memprofilememoryprofiling数据要报文的文件地址。-cpuprofilecpuprofiling数据要保存的文件地址。......转载 2022-07-25 16:49:42 · 378 阅读 · 0 评论 -
Protocol Buffers 非标准类型记录(json映射)
google.protobuf.Value 动态类型的值原创 2022-07-19 16:01:20 · 714 阅读 · 0 评论 -
golang CPU调度、并发
java并发编程流程:https://blog.youkuaiyun.com/xyc1211/article/details/125065193通道有发送(send)、接收(receive)和关闭(close)三种操作对于从无缓冲Channel进行的接收,发生在对该Channel进行的发送完成之前(无缓冲Channel:接收完成,发送才能完成)处理单个请求的多个Goroutine之间与请求域的数据、超时和退出等操作可以同时响应多个通道的操作。同时监听多个channel,直到其中一个channel ready控制go原创 2022-06-22 15:03:08 · 388 阅读 · 0 评论 -
Protocol Buffers 2详解
参考:嵌套定义可以在父消息里面定义嵌套的 消息、枚举 类型只能在父消息内使用字段https://developers.google.com/protocol-buffers/docs/proto#scalar 类型Oneof多个成员字段,只用一块内存,最多一个字段有值 类型其他数据类型支持https://developers.google.com/protocol-buffers/docs/overview#data-typespackage google.protobufpa翻译 2022-06-15 15:26:52 · 1160 阅读 · 0 评论 -
golang 内存管理
文章目录Goroutine 和 Channel线程通讯方案主流传统方案:通过共享内存的方式进行通信go:通过通信的方式共享内存Goroutine 树上下文 Context默认上下文 context.Background取消信号 context.WithCancel传值 context.WithValue, context.valueCtxChannel先进先出内存管理内存分配器常见的内存分配方法线性分配器(Sequential Allocator,Bump Allocator)空闲链表分配器(Free-转载 2022-05-31 17:42:44 · 859 阅读 · 0 评论 -
Go 安装、多版本管理
文章目录正常go安装方式(不建议)1. 官网下载pkg安装2. brew安装GVM 管理多个go版本(推荐)安装GVMGVM命令正常go安装方式(不建议)1. 官网下载pkg安装https://go.dev/doc/installgo 目录默认是 /usr/local/go升级需要从官网下载pkg安装,pkg会先remove之前的版本然后安装2. brew安装# 查看可用go版本brew search go# 安装gobrew install go# 升级brew原创 2022-05-24 18:08:40 · 3964 阅读 · 2 评论 -
go-micro使用入门
go-micro框架官网https://micro.dev/简介Go Micro 框架的基础架构如下,由 8 个核心接口组成,每个接口都有默认实现:最顶层的 Service 接口是构建服务的主要组件,它把底层的各个包需要实现的接口,做了一次封装,包含了一系列用于初始化 Service 和 Client 的方法,使我们可以很简单的创建一个 RPC 服务;Registry 用于实现服务的注册和发现,当有新的 Service 发布时,需要向 Registry 注册,然后 Registry 通原创 2022-02-11 14:33:23 · 496 阅读 · 0 评论 -
Protocol Buffers 1入门
文章目录protocol buffers使用流程1.定义.proto文件2.proto编译器编译实践:https://github.com/xu1211/goFrame/tree/main/protoBufprotocol buffers谷歌官方介绍:protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XM原创 2021-11-10 16:16:57 · 368 阅读 · 0 评论 -
go mod依赖管理
文章目录Go env依赖模块拉取go getgo installGOPATH 模式Go Modules 模式环境变量模块拉取go get 拉取指定版本Go env安装go sdk,配置go环境变量GOROOT sdk安装目录GOPATH 项目路径依赖模块拉取go getgo get会做两件事:从远程下载需要用到的包执行go install拉取的过程总共分为了三大步,分别是 finding(发现)、downloading(下载)以及 extracting(提取), 并转载 2021-11-08 15:10:02 · 2841 阅读 · 0 评论 -
golang关键词,预定义词
Go 代码中会使用到的25 个关键字或保留字关键字使用场景package包定义import模块依赖const常量定义var变量定义type定义类型map定义mapstruct定义结构体interface定义接口func定义函数return函数-结果返回chan定义通道defer延迟调用goto跳转语句if条件控制else条件控制for循环continue循原创 2021-09-27 17:53:44 · 181 阅读 · 0 评论