首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
golang
orange_lys
创建于2023-11-04
订阅专栏
go笔记
暂无订阅
共14篇文章
创建于2023-11-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
GO的并发调度模型-GMP模型
前身 GM 模型 12年的 GO 1.1版本之前用的都是 GM 模型,但是由于 GM 模型性能不好,饱受用户诟病。之后官方对调度器进行了改进,变成了我们现在用的 GMP 模型。 GM 模型中的 G 全
GC 垃圾回收
概念 垃圾回收器 GC 是一种内存回收系统,它代表应用程序来识别内存中什么部分已经不再使用。Go 标准工具链会提供一组运行时库,它们会随所有应用程序一同发布。Go 运行时库里就包含了垃圾回收器。 哪些
GC 垃圾回收 之 引用计数式
概念 引用计数(Reference Counting)是最简单的一种垃圾回收算法,和智能指针异曲同工。对每个对象维护一个引用计数,当引用该对象的对象被销毁或更新时被引用对象的引用计数自动减一,当被引用
GC 垃圾回收 之 标记清除式
概念 标记-清除(Mark And Sweep)分为两步,标记从根变量开始迭代遍历所有被引用的对象,对能够通过引用遍历访问到的对象都进行标记为“被引用”;标记完成后进行清除操作,对没有标记过的内存进行
GC 垃圾回收 之 分代搜集式
概念 Java 的 jvm 就使用的分代搜集(Generation)的思路。在面向对象编程语言中,绝大多数对象的生命周期都非常短。分代收集的基本思想是,将堆划分为两个或多个称为代(Generation
Go new和make之间有什么区别
Go语言中new和make都是用来内存分配的原语(allocation primitives)。简单的说,new只分配内存,make用于slice,map,和channel的初始化。 new new(
Golang GC
三色标记法 在Go 1.5 后采用的三色标记算法,是对标记-清除算法的改进,一共分为四个阶段: 栈扫描:当垃圾回收器第⼀次启动的时候,将对象都看成白色的。初始化GC任务,包括开启写屏障(write b
Go 和虚拟内存
Go 运行时在很多方面都依赖虚拟内存的成本特性: Go 运行时不会删除已经映射的虚拟内存。相反,它会利用多数操作系统提供的专用接口来精确释放特定虚拟内存空间关联的物理内存。 Go 运行时在维护内存上限
线程并发-通信模型(消息同步模型)-通道(Golang CSP模型)
应用场景 在生产者-消费者模型的应用场景下,很自然地会想到线程安全队列 !生产者把产品放到队尾而消费者从队首取出产品消费掉。事实上,人们甚至根据生产者一个还是多个,消费者有一个还是多个,排列组合一下,
go 实现匿名接口的作用
具体写法 可以看见gin实现了一个匿名接口,这个接口没办法被使用。 具体作用 定义一个结构体作为接口内部方法的接收者,然后实现以该结构体作为接收者的方法。但编辑完以该结构体定义为核心功能的go文件后,
语言选型(GO和PHP)
PHP 不支持泛型。程序员无法限制PHP的数组的成员类型。 运行时类型检查。PHP的参数类型检查是在代码执行的过程完成的,降低了执行效率。 不支持多核。PHP虚拟机就是一个C语言的 while 循环,
GO引入泛型
函数式编程面临问题 函数形参和实参的类型必须一致,因此编写程序时,要指定形参和实参的类型 GO 1.18之前解决方案 GO 1.18之前的解决方案:接口+反射 缺点: 反射使用复杂 缺少编译时的检查
go get和go install的区别-golang-第三方包管理
区别 从Go 1.17开始,不建议使用Go get安装可执行文件。可以使用Go install代替。 在Go 1.18中,Go get将不再支持编译第三方包,仅用于在go.mod中添加、更新或删除依赖
go 代码风格引导(规范)
go官方风格 https://google.github.io/styleguide/go/ uber公司风格 https://github.com/uber-go/guide go 性能 https