随笔分类 -  go

对《Go语言设计与实现》的学习以及自我总结
摘要:哈希表用于存储映射关系,作为常用的数据结构,几乎在每个高级语言都有其标准实现。这里就了解一下go语言中哈希表的实现。 数据结构 go语言哈希表的核心结构就是hmap type hmap struct { count int //当前哈希中的元素数量 flags uint8 B uint8 //哈希表 阅读全文
posted @ 2023-02-03 17:22 三尺山 阅读(257) 评论(0) 推荐(0) 编辑
摘要:在api上线之前,我们需要知道API的性能,以便能够了解到API服务器能够承载的最大请求量,性能瓶颈,然后根据业务的要求,对api进行性能调优与扩缩容。 用来衡量API性能的指标主要有3个 并发数(concurrent):在某个时间段内,同时请求同一个API的用户个数。 每秒查询数(QPS):QPS 阅读全文
posted @ 2023-01-31 16:44 三尺山 阅读(125) 评论(0) 推荐(0) 编辑
摘要:Go程序的性能分析整体可以分为两步: 生成性能数据文件 对性能数据文件进行分析 生成性能数据文件 性能数据文件的生成有三种方式。 通过命令行生成性能数据文件 可以在go test进行性能测试的时候生成性能数据文件,因为我们关注cpu和内存数据,所以我们添加参数来生成这两者的数据文件。 例如 $ go 阅读全文
posted @ 2023-01-30 23:06 三尺山 阅读(59) 评论(0) 推荐(0) 编辑
摘要:go语言通过自带的testing框架,可以用来实现单元测试与性能测试,通过go test命令来执行单元测试或性能测试。 go test执行单元测试是以包为单位的,如果没有指定包,则默认使用执行命令时所在的包。遍历包下以*_test.go结尾的文件,执行以Test,Benchmark, Example 阅读全文
posted @ 2023-01-30 19:08 三尺山 阅读(51) 评论(0) 推荐(0) 编辑
摘要:gengine是一款基于golang和AST(抽象语法树)开发的规则引擎,使用一套自定义的简单语法来定义规则来实现语言无关,并且还执行规则执行的各种模式,功能也很强大。 核心API 对于gengine的使用,我们先掌握几个核心的API。 DataContext:用于注入规则中需要使用的数据或者API 阅读全文
posted @ 2023-01-30 11:18 三尺山 阅读(3681) 评论(0) 推荐(0) 编辑
摘要:在go语言实际开发过程,我们使用更多的是切片而不是数组,数组的固定长度注定了只能在一些特殊场景下才具有优势。 切片是长度可变的,所以切片的类型只有其存储的元素类型这一个维度。并且切片可以在编译期就创建出来, // NewSlice returns the slice Type with elemen 阅读全文
posted @ 2023-01-04 17:09 三尺山 阅读(118) 评论(0) 推荐(0) 编辑
摘要:数组是相同类型元素的集合,在内存中对应一块连续的内存空间。数组类型是通过存储的元素类型以及能够存储的大小两个维度来决定的,一旦声明之后大小就不可更改。 初始化 go语言数组的声明有两种方式 arr1 := [3]int{1,2,3} arr2 := [...]int{1,2,3} arr2只是arr 阅读全文
posted @ 2022-11-28 20:09 三尺山 阅读(37) 评论(0) 推荐(0) 编辑
摘要:编译原理-从源码到机器码 任何一门高级语言,要想最终能够在机器上执行那么就一定要从源码生成机器码,因为对于机器来说,它只认同由0和1组成的二进制程序。 从人类可读的源码到机器可识别的机器码的过程就是使用编译器完成的,而编译器就与我们的编译原理息息相关。 编译器将源码变为机器码的过程主要分为以下的步骤 阅读全文
posted @ 2022-11-25 16:44 三尺山 阅读(91) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示