首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
小池池
掘友等级
后端开发
|
百度
不会摄影的吃货不是好的程序媛/Golang/C/Linux/区块链/Docker/K8s
获得徽章 5
动态
文章
专栏
沸点
收藏集
关注
作品
赞
53
文章 53
沸点 0
赞
53
返回
|
搜索文章
最新
热门
Go内存原理(六)-GC源码分析
GC会扫描哪些地方存有指针,首先变量要么分配到栈中,要么分配在在堆中。我们在之前的Go语言内存管理章节中学习到了堆对应的bitmap每2bit会指出arena哪些地址存储了对象,对象是否包含指针;还有我们的mcentral中,也会分为包含指针的span(noscan),不包含指…
Go内存原理(五)-GC原理
前几章我们学习了Golang内存管理的基本原理(还不清楚内存管理的童鞋请移步看内存管理系列)。现在我们来看GC的基本原理是什么? 在三色标记中,减少了STW的时间。我们知道在三色标记中,增加了中间状态-灰色状态,这可以允许标记与用户代码并行执行,这里是怎么做到的呢,是因为三色标…
从一个案例学习k8s 基本架构
在服务器我已经使用kubadm搭建的k8s集群(若想深入学习,一定先搭建一套k8s集群哦),一主(master)一从(slave)。系统创建的Pod都在namespace为kube-system中,我们可以看到k8s集群的都有以下的主要组件: 管理cluster的资源,kube…
Go内存管理(四)什么情况下变量分配到堆中
栈内存:一般由系统申请和释放。比如函数的入参、局部变量、返回值等 堆内存:一般由程序员申请和释放(malloc/free new/delete等)。使用malloc关键字申请的内存就在堆内存,申请和释放要成对使用,否则会造成内存泄漏。对于Golang系统会自动回收已经不使用的堆…
Go内存管理(三) 源码分析
我们理解源码的流程就非常easy啦。 首先来看一下,mcache,mcentral,mheap这三个结构体。我们选则最长使用的字段进行分析。注:这里都是基于go1.14源码分析(对照代码看体验更佳 接下来我们按照Tiny对象,小对象,大对象分类来介绍内存分配的流程。 0、对象的…
Go内存管理(二)Go内存管理原理
Golang的内存管理的核心思想就是完成类似预分配、内存池等操作,以避开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 mheap向虚拟内存申请的最小单位。一般为8KB 为了减少内存碎片,将span的大小分级。目前分为0-66级共67级。可以看到class=0是没有使…
Go 内存管理(一)TCMalloc内存管理原理
TCMalloc(Thread Cache Malloc)是线程级别的内存管理模式。 2、减少锁竞争。对于小对象,只有在对应线程分配的空闲块不足的时候,才会使用到锁;对于大对象,TCMalloc尝试使用有效的自旋锁 总结来说就是:最大化内存使用率,最小化分配时间。 基本把这张图…
Docker数据卷的2种存储方式
docker提供2种方法对数据卷进行存储。 1、bind mount 2、docker管理数据卷 使用-v 关键字标识容器数据挂载路径。这里一定要指定宿主机地址和容器地址。 可以看到,bind mount的使用十分的简单和高效。但是也可以看到有很大的不灵活性,因为挂载的时候需要…
零基础了解Docker架构
本文会讲到docker的整体框架和基本原理。以及最主要的镜像(是什么,怎么构建),容器(是什么,怎么运行),在最后说一下容器都有哪些优点。容器基础网络已经在之前的文章分享过,有兴趣的可以查看。https://juejin.cn/post/6904201044390051848 …
Context也就这么一回事儿
本文会从3方面介绍Context:作用、案例、源码分析。希望阅读完,你也能豁然开朗,Context没有那么神秘,也就是这么一回事儿 Context主要表示上下文,其控制一个请求的生命周期。在并发程序中,超时、定时、取消、或者一些异常操作,通常需要中断当前任务的后续操作。 引入C…
下一页
个人成就
文章被点赞
185
文章被阅读
63,104
掘力值
1,838
关注了
9
关注者
88
收藏集
0
关注标签
23
加入于
2020-04-17