首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
golang
订阅
多乐BoY
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
图文结合,白话Go的垃圾回收原理
前面两篇文章介绍了Go语言的内存分配策略以及Go协程动态扩充和收缩栈内存的原理,今天这篇文章我们主要来聊一下内存管理的另外一大块内容:垃圾回收。 下面首先我们会聊一下什么是GC,GC的作用是什么,然后再结合图示用每个人都能听懂的大白话解释Go的GC原理。 现代高级编程语言管理内…
昨天那个在for循环里append元素的同事,今天还在么?
不会死循环,for range其实是golang的语法糖,在循环开始前会获取切片的长度 len(切片),然后再执行len(切片)次数的循环。
Golang http请求源码分析
go提供的标准库net/http,实现一个简单的http server非常容易,只需要短短几行代码。本篇文章将会对go标准库net/http实现http服务的原理进行较为深入的探究
Golang的GC性能优化技巧
当slice的容量小于1024时,容量是按照2倍大小增长的。当容量大于1024,增长的容量是原来的1.25倍。看下面的离例子: 函数appendOne没有指定初始容量大小,appendMany指定了初始的容量大小。进行一下benchmark测试: 可以看到,AppendMany…
高频golang面试题:简单聊聊内存逃逸?
golang程序变量会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验,它就可以在栈上分配。否则就说它 逃逸 了,必须在堆上分配。 在方法内把局部变量指针返回 局部变量原本应该在栈中分配,在栈中回收。但是由于返回时被外部引用,因此其生命周…
Go面试复盘备忘录
声明时:array需要声明长度或者... go通过约定来实现权限控制。变量名首字母大写,相当于public,首字母小写,相当于private。在同一个包中访问,相当于default。由于在go中没有继承,所以就没有protected channel是一个通信机制,它可以让一个g…
golang程序优雅关闭与重启
是谓优雅。 并打印在控制台里,达到输出的效果,如果这几行不写的话,在新的进程里的 fmt.Println()方法打印出来的数据将无法显示在控制台上.
分布式系统高可用实战之限流器(Go 版本实现)
限流器,顾名思义用来对高并发的请求进行流量限制的组件。 限流包括 Nginx 层面的限流以及业务代码逻辑上的限流。流量的限制在众多微服务和 service mesh 中多有应用。限流主要有三种算法:信号量、漏桶算法和令牌桶算法。下面依次介绍这三种算法。 笔者在本文的程序示例均以…
Golang 的 协程调度机制 与 GOMAXPROCS 性能调优
Golang 简称 Go,Go 的协程(goroutine) 和我们常见的线程(Thread)一样,拥有其调度器。 全局G任务队列会和各个本地G任务队列按照一定的策略互相交换。没错,就是协程任务交换 如果还有空闲的P,则创建一个M 绑定该 P ,注意!这里,P 此前必须还没绑定…
[译]Go:内存管理与内存分配
这篇文章是基于Go 1.13的。 当内存不再被使用时,标准库就会自动执行Go内存管理,即从内存分配到Go自己的集合中(from allocation of the memory to its collection)。 虽然开发人员不用去和这些打交道,但是Go的内存管理做了很多优…