首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go
订阅
Samuel_zx
更多收藏集
微信扫码分享
微信
新浪微博
QQ
19篇文章 · 0订阅
Golang 中 GPM 之 G 从哪里来
解释下我探究的思路,我的Golang版本是1.14.4,如下,是我们这次实验的代码以上的代码中通过`go`关键字生成了协程,我们可以反编译找到具体的函数 我们可以得到 因此我们跳转到runtime.n
Go gRPC 系列九:gRPC超时控制(Deadlines)
大家好,我是煎鱼,在前面的章节中,已经介绍了 gRPC 的基本用法。那你想想,让它这么裸跑真的没问题吗? 那么,肯定是有问题了。今天将介绍 gRPC Deadlines 的用法,这一个必备技巧。内容也比较简单。 context.WithDeadline:会返回最终上下文截止时间…
理解 Golang 中 slice 的底层设计
slice 是 golang 中利用指针指向某个连续片段的数组,所以本质上它算是引用类型。 。所以,其实^uintptr(0) 就是指当前机器(32位,uint32;64位,uint64)的最大值。 扩容完成后就开始根据 t.size 的大小,重新计算地址,其中新 slice …
不得不知道的Golang之sync.Map源码分析
众所周知,go普通的map是不支持并发的,换而言之,不是线程(goroutine)安全的。博主是从golang 1.4开始使用的,那时候map的并发读是没有支持,但是并发写会出现脏数据。golang 1.6之后,并发地读写会直接panic: 第三方类库 concurrent-m…
Goroutine并发调度模型深度解析&手撸一个协程池
并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并行)编程肯定是值得开发者去探究的,而Go语言中的并发(并行)编程是经由goroutine实现的,goroutine是g…
Go借助PProf的一次性能优化
可以看到主要消耗时间在2大块,一个是mapaccess,mapassign,还有一块是decoderune。 decoderune主要是对UFT8字符的解码,将字符串转换成 []rune(s) 这个是不能避免的。所以主要去解决map的访问和赋值问题,也就是代码中的lastOcc…
Golang之轻松化解defer的温柔陷阱
defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。 defer语句通常用于一些成对操作的场景:打开连接/关闭连接;加锁/释放锁;打开文件/关闭文件等。 defer在一些需要…
线上大量CLOSE_WAIT的原因深入分析
这一次重启真的无法解决问题了:一次 MySQL 主动关闭,导致服务出现大量 CLOSE_WAIT 的全流程排查过程。 近日遇到一个线上服务 socket 资源被不断打满的情况。通过各种工具分析线上问题,定位到问题代码。这里对该问题发现、修复过程进行一下复盘总结。 先看两张图。一…
Go 每日一库之 watermill
在上一篇文章Go 每日一库之 message-bus中,我们介绍了一款小巧、实现简单的异步通信库。作为学习,message-bus确实不错。但是在实际使用上,message-bus的功能就有点捉襟见肘了。例如,message-bus将消息发送到订阅者管道之后就不管了,这样如果订…
[译]Go:垃圾回收器是怎样标记内存的?
Go的垃圾回收器负责将那些不会再使用的被占用的内存进行回收。实现的算法是并发的三色标记法以及扫描收集器。我们会看一下标记阶段的细节以及不同颜色的使用。 你可以在这篇文章中阅读到不同类型的垃圾回收机制。 这个阶段主要是扫描内存来确认哪一些内存块是仍然被使用,在哪一些内存块是可以被…