首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
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年过去了,设计模式依旧是软件领域的热门话题。在当下,如果你不会一点设计模式,都不好意思说自己是一个合格的程序员。设计模式通常被定义为: 从定义上看,设计模式其实是一种经验的总结,是针对特定问题的简洁而优雅的解决方案。既然是经验总结…