01 2023 档案
摘要:在api上线之前,我们需要知道API的性能,以便能够了解到API服务器能够承载的最大请求量,性能瓶颈,然后根据业务的要求,对api进行性能调优与扩缩容。 用来衡量API性能的指标主要有3个 并发数(concurrent):在某个时间段内,同时请求同一个API的用户个数。 每秒查询数(QPS):QPS
阅读全文
摘要:Go程序的性能分析整体可以分为两步: 生成性能数据文件 对性能数据文件进行分析 生成性能数据文件 性能数据文件的生成有三种方式。 通过命令行生成性能数据文件 可以在go test进行性能测试的时候生成性能数据文件,因为我们关注cpu和内存数据,所以我们添加参数来生成这两者的数据文件。 例如 $ go
阅读全文
摘要:go语言通过自带的testing框架,可以用来实现单元测试与性能测试,通过go test命令来执行单元测试或性能测试。 go test执行单元测试是以包为单位的,如果没有指定包,则默认使用执行命令时所在的包。遍历包下以*_test.go结尾的文件,执行以Test,Benchmark, Example
阅读全文
摘要:gengine是一款基于golang和AST(抽象语法树)开发的规则引擎,使用一套自定义的简单语法来定义规则来实现语言无关,并且还执行规则执行的各种模式,功能也很强大。 核心API 对于gengine的使用,我们先掌握几个核心的API。 DataContext:用于注入规则中需要使用的数据或者API
阅读全文
摘要:在go语言实际开发过程,我们使用更多的是切片而不是数组,数组的固定长度注定了只能在一些特殊场景下才具有优势。 切片是长度可变的,所以切片的类型只有其存储的元素类型这一个维度。并且切片可以在编译期就创建出来, // NewSlice returns the slice Type with elemen
阅读全文