应用程序在运行时,总是会出现一些意料不到的问题,如CPU使用率过高、内存占用不断增大(疑似泄露),又或是Goroutine泄露、出现Goroutine数量暴涨,以及网络连接数过多等。本文分享pprof...
Goroutine Leaks引发的思考(Go语言)
本期作者邹靓哔哩哔哩创平高级测试开发引言:江湖中有个传说:10次内存泄露,9次都是goroutine泄露。(Go语言背景前段时间,通过监控观察到,我们业务中的某个服务突然出现goroutine数量、堆...
ants Code Reading
概述 goroutine 使用简单,但并不意味着没有成本。ants 是一个高性能且低损耗的 goroutine 池,组件内部会创建一个固定容量的 goroutine 池,并且管理和回收池中的 goro...
Go 中线程安全 map 方案选型
概述 Go 语言标准库中的 map 数据类型并不是线程安全的,多个 goroutine 可以并发读取同一个 map, 但是不能并发写入同一个 map, 否则会引发 panic。 为了解决这个问题,实际...
不同语言运行 100 万个并发任务需要多少内存?
这是「进击的Coder」的第 842 篇技术分享来源:Python 猫“ 阅读本文大概需要 9 分钟。 ”大家好,我是猫哥。在前几天的《Python潮流周刊#5:并发一百万个任务要用多少内存...
Go netpoll (上篇)- 数据结构和初始化
概述 下面是一个基础的服务器网络程序,主要包含如下功能:监听 TCP 连接,绑定 8888 端口收到新的客户端连接后,启动一个新的 goroutine 进行处理收到客户端的数据后,不做任何处理,原样返...
Go Sync 包:并发的 6 个关键概念
1.sync.Mutex和sync.RWMutex要知道,mutex(互斥)对于我们 gopher 来说就像一个老伙计。在处理 goroutine 时,确保它们不会同时访问资源是非常重要的,而 mut...
Go 中的性能分析和执行跟踪
👇你懂的 Go 提供了一些优秀的诊断工具来帮助我们深入分析应用程序的执行情况。这篇文章核心关注点是:分析和执行跟踪器。 这两个工具都非常重要,它们应该成为任何对优化感兴趣的 Go ...
Go 中的数据竞争模型
of code (and growing) and contains approximately 2,100 unique Go services (and growing).Uber 把Golang...
Go Scheduler 的 GMP 模型
动手点关注干货不迷路写在前面Go 为了自身 goroutine 执行和调度的效率,自身在 runtime 中实现了一套 goroutine 的调度器,下面通过一段简单的代码展示一下 Go 应用程序在运...
Go runtime: 4 年之后的变化
自从我们发布 2018 年关于 Go GC 的最后一篇博文[1] 以来,Go GC 和 Go 运行时一直在稳步改进。我们已经处理了一些大型项目,这些项目是真实的 Go 程序和 Go...
深入理解 golang 的互斥锁
How to implement Golang Mutex golang 是如何实现互斥锁的在开始之前,我们需要知道锁实现的几种方式。# 信号量 操作系统中有 P 和 V 操作。P 操作是将...