首页
首页
沸点
课程
直播
活动
竞赛
商城
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的垃圾回收器负责将那些不会再使用的被占用的内存进行回收。实现的算法是并发的三色标记法以及扫描收集器。我们会看一下标记阶段的细节以及不同颜色的使用。 你可以在这篇文章中阅读到不同类型的垃圾回收机制。 这个阶段主要是扫描内存来确认哪一些内存块是仍然被使用,在哪一些内存块是可以被…