首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
深入理解 Go
eleven26
创建于2022-12-06
订阅专栏
旨在帮助读者更深入地理解 Go 的一些工作机制、原理。
等 187 人订阅
共30篇文章
创建于2022-12-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go 单元测试完全指南(五)- http 测试
很多时候我们会使用 golang 来作为 web 服务的后端,这时候我们就需要对我们的 http 接口进行测试。
Go 单元测试完全指南(四)- 模糊测试
什么是模糊测试 在 Go 1.18 版本中,Go 引入了一个新的测试工具:模糊测试(Fuzzing)。模糊测试是一种自动化测试技术,它通过随机输入来发现程序中的错误。 模糊测试的原理很简单:随机生成输
Go 单元测试完全指南(三)- Example 测试
什么是 Example 测试 Example 测试是 Go 语言中的一种特殊测试,它用于展示函数或方法的使用方式。Example 测试的代码位于 _test.go 文件中,以 Example 开头,
Go 单元测试完全指南(二)- 性能测试
一个基本的性能测试 我们以斐波那契数列为例,来看一个基本的性能测试。 需要测试的文件: 测试文件: 我们可以通过执行下面的命令来运行性能测试: 输出结果: 说明: 输出字段说明: goos:操作系统。
Go 单元测试完全指南(一)- 基本测试流程
为什么写单元测试? 关于测试,有一张很经典的图,如下: 说明: 测试类型 成本 速度 频率 E2E 测试 高 慢 低 集成测试 中 中 中 单元测试 低 快 高 也就是说,单元测试是最快、最便宜的测试
如何使用 pprof 和 trace 来诊断和修复性能问题
软件开发严重依赖调试技术,这对于有效处理性能问题至关重要。用户在遇到程序执行缓慢时会感到沮丧,这凸显了通过调试工具有效识别和解决潜在问题的重要性。 但是,由于软件的创建和实现过程中涉及庞大的代码库或复
Go map 读写性能优化 - 分片 map
Go 中的 map 是一种不支持并发读写的类型,但是在实际应用中我们是可能对 map 进行并发读写的,这个时候就可以互斥锁、sync.Map 或者分片 map 来保证并发安全。
深入理解 go RWMutex
我们知道,Mutex 可以实现互斥操作,从而实现并发读写的安全。但是有时候我们的读操作是可以同时进行的,这个时候使用 RWMutex 是一个更好的选择。
深入理解 go Mutex
在我们的日常开发中,总会有时候需要对一些共享资源做并发读写,这个时候,使用互斥锁往往是我们的最好的选择。本文会深入讲解互斥锁的原理、机制以及具体实现。
深入理解 go 原子操作
在我们前面的一些介绍 sync 包相关的文章中,我们应该也发现了,其中有不少地方使用了原子操作。今天让我们来深入探讨一下 go 中的原子操作原理、使用场景、用法等内容。
go sync.Pool 设计与实现
Pool 是一组可以安全在多个 goroutine 间共享的临时对象的集合。本文会带领读者由浅入深地学习一下 Pool 的一些设计理念,具体实现。
深入理解 go sync.Cond
在 go 的标准库中,提供了 sync.Cond 这个并发原语,让我们可以实现多个 goroutine 等待某一条件满足之后再继续执行。本文就由浅入深来探讨一下 Cond 的原理及基本使用方式。
go sync.Map 设计与实现
在上一篇文章中(《深入理解 go sync.Map - 基本原理》),我们探讨了 go 中 sync.Map 的一些基本原理,本文再来深入探讨一下它的设计与实现。
深入理解 go sync.Map - 基本原理
go 里面如果需要并发读写 map,我们可以采用 map 配合互斥锁的方式。又或者使用 sync.Map,本文就探讨一下sync.Map 的一些基本原理及用法。
深入理解 go reflect - 反射为什么慢
我们选择 go 语言的一个重要原因是,它有非常高的性能。但是它反射的性能却一直为人所诟病,本篇文章就来看看 go 反射的性能问题。
深入理解 go reflect - 反射常见错误
go 的反射是很脆弱的,保证反射代码正确运行的前提是,在调用反射对象的方法之前, 先问一下自己正在调用的方法是不是适合于所有用于创建反射对象的原始类型。
go 反射的常见用法
go 的反射系统为我们在运行时检查变量类型等操作提供了非常便利的操作,本文就讲述一下 go 中反射的一些常见用法,比如通过反射对象来获取、修改结构体的字段等。
深入理解 go reflect - 要不要传指针
使用反射的时候,reflect.ValueOf 的参数不管是值类型还是指针类型,好像都能实现我们想要的功能。那到底什么时候应该传值,什么时候应该传指针呢?
深入理解 go reflect - 反射基本原理
常用的编程语言中都提供了反射的功能,通过反射我们可以在运行时获取变量的类型、存储的内容等信息。今天,让我们来深入了解一下 go 里的类型系统以及反射的基本原理。
深入理解 go sync.Waitgroup
go 里面的 WaitGroup 是非常常见的一种并发控制方式,它可以让我们的代码等待一组 goroutine 的结束。
下一页