首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
golang
订阅
用户5597468805167
更多收藏集
微信扫码分享
微信
新浪微博
QQ
20篇文章 · 0订阅
图解Go内存管理器的内存分配策略
在Go语言里,从内存的分配到不再使用后内存的回收等等这些内存管理工作都是由Go在底层完成的。虽然开发者在写代码时不必过度关心内存从分配到回收这个过程,但是Go的内存分配策略里有不少有意思的设计,通过了解他们有助于我们自身的提高,也让我们能写出更高效的Go程序。 Go内存管理的设…
Go Mutex源码分析
从Go Mutex的迭代过程中,分析源码来理解锁的机制。学习go作者对于锁代码质量的不断追求的精神和一些巧妙的设计。
Go内存管理(二)Go内存管理原理
Golang的内存管理的核心思想就是完成类似预分配、内存池等操作,以避开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 mheap向虚拟内存申请的最小单位。一般为8KB 为了减少内存碎片,将span的大小分级。目前分为0-66级共67级。可以看到class=0是没有使…
聊聊 Golang 信号量的设计和实现
信号量的概念是荷兰计算机科学家 Edsger Dijkstra 在 1963 年左右提出来的,广泛应用在不同的操作系统中。在系统中,会给每一个进程一个信号量,代表每个进程目前的状态。
golang 系列:mutex 详解
Mutex 详细知识点,状态标示位 正常模式、饥饿模式、自旋 Lock()、UnLock() 代码详解
9张图轻松吃透Go内存管理单元
导读 想深入了解Go语言的内存管理实现,必然绕不开「Go内存管理单元mspan」,今天我们就通过几张图,层层深入并解开「Go内存管理单元mspan」的神秘面纱。 本文也包含的具体概念如下: page的
图解Go语言内存分配
Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需要进行系统调用。 Golang运行时的内存分配算法主要源自 Google 为 C 语言开发的TCMalloc…
用Go语言实现23种设计模式
设计模式是软件工程中各种常见问题的经典解决方案,设计模式不只是代码,而是组织代码的方式。假设一行行的代码是砖,设计模式就是蓝图。
go并发奥秘:GMP模型|Go主题月
常规的多线程是由CPU直接调度的,其中大部分时间花在了上下文切换上面,所以后面就了了协程(co-routine),用于减少上下文切换。 M0是启动程序后的编号为0的主线程,这个M对应的实例会在全局变量runtime.m0中,不需要在heap上分配,M0负责执行初始化操作和启动第…
golang面试题:字符串转成byte数组,会发生内存拷贝吗?
字符串转成切片,会产生拷贝。严格来说,只要是发生类型强转都会发生内存拷贝。那么问题来了。 频繁的内存拷贝操作听起来对性能不大友好。有没有什么办法可以在字符串转成切片的时候不用发生拷贝呢? StringHeader 是字符串在go的底层结构。 SliceHeader 是切片在go…