难受,生产 Go timer.After 内存泄露之痛!

2021-06-02
阅读 3 分钟
3.4k
微信搜索【脑子进煎鱼了】关注这一只爆肝煎鱼。本文 GitHub github.com/eddycjy/blog 已收录,有我的系列文章、资料和开源 Go 图书。大家好,我是煎鱼。前几天分享了一篇 Go timer 源码解析的文章《难以驾驭的 Go timer,一文带你参透计时器的奥秘》。在评论区有小伙伴提到了经典的 timer.After 泄露问题,希望我能聊聊...

Go 面试官:Go 结构体是否可以比较,为什么?

2021-06-01
阅读 4 分钟
7.7k
微信搜索【脑子进煎鱼了】关注这一只爆肝煎鱼。本文 GitHub github.com/eddycjy/blog 已收录,有我的系列文章、资料和开源 Go 图书。大家好,我是煎鱼。最近金三银四,是面试的季节。在我的 Go 读者交流群里出现了许多小伙伴在讨论自己面试过程中所遇到的一些 Go 面试题。今天的男主角,是 Go 工程师的必修技能,也是极...

Go 面试官:GMP 模型,为什么要有 P?

2021-05-31
阅读 3 分钟
8.4k
微信搜索【脑子进煎鱼了】关注这一只爆肝煎鱼。本文 GitHub github.com/eddycjy/blog 已收录,有我的系列文章、资料和开源 Go 图书。大家好,我是煎鱼。最近金三银四,是面试的季节。在我的 Go 读者交流群里出现了许多小伙伴在讨论自己面试过程中所遇到的一些 Go 面试题。今天的主角,是 Go 面试的万能题 GMP 模型的延伸...

Go 面试官:进程、线程都有 ID,为什么 Goroutine 没有 ID?

2021-05-30
阅读 4 分钟
10.6k
今天的主角,是大家在既有语言基础的情况下,学 Goroutine 时会容易纠结的一点。就是 “进程、线程都有 ID,为什么 Goroutine 没有 GoroutineID?”。

Go 语言中的一等公民:看似普通的函数,凭什么?

2021-05-12
阅读 3 分钟
4.2k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接] 。大家好,我是煎鱼。在 Go 语言中,一提函数,大家提的最多的就是 “Go 语言的函数是一等公民”。这个定义来的非常突然,我们先了解一下什么是一等公民。根据维基百科的一等公民(First-class citizen)的定义:In programm...

Go 面试题:Go interface 的一个 “坑” 及原理分析

2021-05-11
阅读 2 分钟
4.9k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接] 。大家好,我是煎鱼。前几天在读者交流群里看到一位小伙伴,针对 interface 的使用有了比较大的疑惑。无独有偶,我也在网上看到有小伙伴在 Go 面试的时候被问到了:今天特意分享出来让大家避开这个坑。例子一第一个例子,...

Go 群友提问:学习 defer 时很懵逼,这道不会做!

2021-05-08
阅读 2 分钟
2.5k
前几天在读者交流群里看到一位小伙伴,在向大家咨询 Go 相关的技术问题。疑问是:“各位大佬,我在学习 defer 遇到闭包的时候很懵逼,谁比较明白,能指点?”

Go 群友提问:Goroutine 数量控制在多少合适,会影响 GC 和调度?

2021-04-05
阅读 4 分钟
9.1k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接] 。大家好,我是煎鱼。前几天在读者交流群里看到一位小伙伴,发出了一个致命提问,那就是:“单机的 goroutine 数量控制在多少比较合适?”。也许你和群内小伙伴第一反应一样,会答复 “控制多少,我觉得没有定论”。紧接着延伸...

问个 Go 问题,字符串 len == 0 和 字符串== "" ,有啥区别?

2021-03-31
阅读 2 分钟
3.7k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接]。大家好,我是煎鱼。前几天在微信群看到几位大佬在讨论一个问题: ”字符串 len == 0 和 字符串 == "" ,有啥区别?“这是一个比较小的细节点,同时也勾起了我的好奇心,因此今天这篇文章就和大家一起研究一下他们两者有没有...

Go 面试题: new 和 make 是什么,差异在哪?

2021-03-31
阅读 2 分钟
3.6k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接]。大家好,我是煎鱼。在 Go 语言中,有两个比较雷同的内置函数,分别是 new 和 make 方法,其主要用途都是用于分配相应类型的内存空间。看上去 new 和 make 都是分配内存的,那他们有什么区别呢?这个细节点也成为了不少 Go...

Go1.16 新特性:Go mod 的后悔药,仅需这一招

2021-03-07
阅读 3 分钟
8.3k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接]。大家好,我是煎鱼。前几天 Go 官方正式发布了 1.16 版本。从这个版本起,环境变量 GO111MODULE 的默认值正式修改为 on。这也意味着 Go modules 将更进一步推进其业务覆盖面,有新老项目共存的小伙伴建议手动将 GO111MODUL...

Go1.16 新特性:一文快速上手 Go embed

2021-03-07
阅读 3 分钟
5.8k
在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。

Go1.16 新特性:详解内存管理机制的变更,你需要了解

2021-03-07
阅读 3 分钟
8.6k
在前面 Go1.16 特性介绍的文章中我们有提到,从 v1.16 起,Go 在 Linux 下的默认内存管理策略会从MADV_FREE 改回 MADV_DONTNEED 策略。

Go1.16 正式发布,以下变更你需要知道

2021-03-07
阅读 4 分钟
3.2k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接]。大家好,我是正在努力学习的煎鱼。在前几天,Go1.16rc1 抢先发布了。结合常规的 28 发布规律,其将会在 2021.02 月份左右发布正式版本。这次 Go1.16 也带来了一些新特性或变更。那么作为一个 Gopher,想必不能错过这次的...

吐血整理 | 快速学习大厂们的软件案例经验

2021-02-28
阅读 16 分钟
4.5k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接]。前几天,煎鱼去了趟北京,参加了为期三天的全球软件案例研究峰会(TOP 100)。同时记了一些笔记,整理后分享出来,希望对大家有所帮助,拓展眼界非常重要。内容比较多(已经精简过),大家可以挑自己感兴趣的学习,建议三...

Go 并发:一些有趣的现象和要避开的 “坑”

2021-02-28
阅读 4 分钟
4k
最近在看 Go 并发相关的内容,发现还是有不少细节容易让人迷迷糊糊的,一个不小心就踏入深坑里,且指不定要在上线跑了一些数据后才能发现,那可真是太人崩溃了。

Go 错误处理:用 panic 取代 err != nil 的模式

2020-12-29
阅读 3 分钟
3.4k
前段时间我分享了文章 《先睹为快,Go2 Error 的挣扎之路》后,和一位朋友进行了一次深度交流,他给我分享了他们项目组对于 Go 错误处理的方式调整。

先睹为快,Go2 Error 的挣扎之路

2020-12-28
阅读 7 分钟
12.7k
自从 Go 语言在国内火热以来,除去泛型,其次最具槽点的就是 Go 对错误的处理方式,一句经典的 if err != nil 暗号就能认出你是一个 Go 语言爱好者。

重磅:Go errors 将不会有任何进一步的改进计划

2020-12-26
阅读 2 分钟
2.8k
前段时间在 Gophercon2020 上,Go 1.13 错误提案的作者事后提及他对目前错误格式化的缺失表示遗憾,而且在未来很长的好几年内都不会有任何进一步改进计划。

Go 语言今年 11 岁,何去何从,现状到底如何?

2020-11-13
阅读 3 分钟
3.1k
不说不知道,一说下一跳。Go 语言已经开源 11 周年了,感觉是一路高歌,Release History (polarisxu 整理)如下:

为什么 Go 占用那么多的虚拟内存?

2020-11-01
阅读 12 分钟
8k
前段时间,某同学说某服务的容器因为超出内存限制,不断地重启,问我们是不是有内存泄露,赶紧排查,然后解决掉,省的出问题。我们大为震惊,赶紧查看监控+报警系统和性能分析,发现应用指标压根就不高,不像有泄露的样子。

必知必会的大厂面试计算机基础和概念

2020-10-26
阅读 5 分钟
3.3k
最近在翻阅文章时,看到朋友推荐的《程序员的自我修养》,这是一本讲链接、装载与库的计算机图书,看了下目录后觉得挺有意思。因此决定每读一章就将其读书笔记整理记录下来,分享给大家。目录:不要让 CPU 打盹在计算机发展早期,CPU 资源十分昂贵。如果一个 CPU 只能运行一个程序,那么当程序在读写磁盘(进行 I/O 操作...

带你快速了解:限流中的漏桶和令牌桶算法

2020-10-17
阅读 3 分钟
4k
在前文 《限流熔断是什么,怎么做,不做行不行?》中针对 “限流” 动作,有提到流量控制其内部对应着两种常用的限流算法,分别是漏桶算法和令牌桶算法。因此会有的读者会好奇,这都是些啥?

业务压力一大就宕机?一文带你搞懂限流熔断!

2020-10-12
阅读 4 分钟
5.1k
“在分布式应用中,最常见的问题是什么呢?”“一个分布式应用部署上去后,还要关注什么?”“这服务的远程调用依赖似乎有点多...”前言在 《微服务的战争:级联故障和雪崩》中有提到,在一个分布式应用中,最常见,最有危险性之一的点就是级联故障所造成的雪崩,而其对应的解决方案为根据特定的规则/规律进行流量控制和熔断降...

想要4个9?本文告诉你监控告警如何做

2020-10-08
阅读 5 分钟
8k
“你说说,没有仪表盘的车,你敢开吗?”“没有仪表盘的车开在路上,你怎么知道现在是什么情况?”“客户说你这车又崩了,咋知道什么时候好的?​啥时候出的问题?”前言将思考转换到现实的软件系统中,可想而知没有监控系统的情况下,也就是没有 ”仪表盘“ 的情况下实在是太可怕了。你的故障永远都是你的客户告诉你的,而...在...

微服务的战争:选型?分布式链路追踪

2020-09-13
阅读 3 分钟
5.7k
“微服务的战争” 是一个关于微服务设计思考的系列题材,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,欢迎随时交流。

Go: A Documentary 发布!

2020-09-13
阅读 1 分钟
2.2k
以前经常有读者问我,哪儿可以找到 Go 语言的前世今生,这种时候我们往往会告诉他去看 issues 和 proposals。但资料有点分散,且没有索引体系。因此不少人新入门的读者读着读着就跑偏了,又或是在第一步找资料上就被拦住了。

微服务的战争:级联故障和雪崩

2020-09-13
阅读 2 分钟
4.1k
“微服务的战争” 是一个关于微服务设计思考的系列题材,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,欢迎随时交流。

微服务的战争:统一且标准化

2020-08-30
阅读 3 分钟
2.6k
“微服务的战争” 是一个关于微服务设计思考的系列题材 ? ,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,可以微信搜一搜【脑子进煎鱼了】或我的 博客 进行沟通和交流。

微服务的战争:按什么维度拆分服务

2020-08-23
阅读 4 分钟
6.4k
👍 点赞再看,养成习惯,微信搜一搜【脑子进煎鱼了】吸取煎鱼的精华 🚀。最近热衷于分享 Go 语言、微服务架构和各类奇怪的系统设计。若有任何建议或疑问欢迎随时交流和反馈。