首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Golang
订阅
cannoli
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
详解Go语言的内存模型及堆的分配管理
这篇文章主要介绍Go内存分配和Go内存管理,会轻微涉及内存申请和释放,以及Go垃圾回收。从非常宏观的角度看,Go的内存管理就是下图这个样子,我们今天主要关注其中标红的部分。 Go这门语言抛弃了C/C++中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC…
eBPF 和 Go 入门 |Go主题月
eBPF拥有一个蓬勃发展的生态系统,在eBPF自己 及其各种应用(包括 XDP)上都有大量的学习资源。但在选择与eBPF交互和协调的库和工具时,它开始变得令人困惑。在这里,你必须在基于Python的 BCC框架、基于C语言的libbpf以及Dropbox, Cilium, Aq…
Go小课03:Gin Simple Demo解读
快速:基于Radix树的路由,性能非常强大。 支持中间件:内置许多中间件,如Logger,Gzip,Authorization等。 崩溃恢复:可以捕捉panic引发的程序崩溃,使Web服务可以一直运行。 JSON验证:可以验证请求中JSON数据格式。 路由分组:支持路由分组(R…
Go组件学习——database/sql数据库连接池你用对了吗
这里maxOpenConns设置为10,足够这里的两次查询使用了。 之所以阻塞,是因为拿不到连接,可用的连接一直被上一次查询占用了。 除了maxOpenConns=1以外,这里多了rows遍历的代码。 显然,这里第二次查询并没有阻塞,而是拿到了连接并查到了结果。 所以,这里ro…
crawlab的golang后端内存分析及优化-基于go pprof
1. 背景 Crawlab发布几个月以来,其中经历过多次迭代,在使用者们的积极反馈下,crawlab爬虫平台逐渐稳定,但是最近有用户报出crawlab启动一段时间后,主节点机器会出现内存占用过高的问题,一台4G内存的机器在运行crawlab后竟然能占用3.5G以上,几乎可以肯定…
Golang并发调度的GMP模型
Golang的一大特色就是Goroutine。Goroutine是Golang支持高并发的重要保障。Golang可以创建成千上万个Goroutine来处理任务,将这些Goroutine分配、负载、调度到处理器上采用的是G-M-P模型。 Goroutine = Golang + …
图文结合,白话Go的垃圾回收原理
前面两篇文章介绍了Go语言的内存分配策略以及Go协程动态扩充和收缩栈内存的原理,今天这篇文章我们主要来聊一下内存管理的另外一大块内容:垃圾回收。 下面首先我们会聊一下什么是GC,GC的作用是什么,然后再结合图示用每个人都能听懂的大白话解释Go的GC原理。 现代高级编程语言管理内…
Go组件学习——手写连接池并没有那么简单
前段时间在看gorm,发现gorm是复用database/sql的连接池。 于是翻了下database/sql的数据库连接池的代码实现,看完代码,好像也不是很复杂,但是总觉得理解不够深刻,于是萌生了自己想写个连接池的想法。(最后也验证了,看源码的理解确实不够深刻,一看就会,一做…
使用Go实现GoF的23种设计模式(三)
上一篇文章《使用Go实现GoF的23种设计模式(二)》中,我们介绍了结构型模式(Structural Pattern)中的组合模式、适配器模式和桥接模式。本文将会介绍完剩下的几种结构型模式,代理模式、装饰模式、外观模式和享元模式。本文将会继续采用消息处理系统作为例子,如果对该例…
使用Go实现GoF的23种设计模式(一)
从1995年GoF提出23种设计模式到现在,25年过去了,设计模式依旧是软件领域的热门话题。在当下,如果你不会一点设计模式,都不好意思说自己是一个合格的程序员。设计模式通常被定义为: 从定义上看,设计模式其实是一种经验的总结,是针对特定问题的简洁而优雅的解决方案。既然是经验总结…