摘要: slice 是 Go 语言一个很重要的数据结构。网上已经有很多文章写过了,似乎没必要再写。但是每个人看问题的视角不同,写出来的东西自然也不一样。我这篇会从更底层的汇编语言去解读它,这是一个新的世界。 阅读全文
posted @ 2019-04-01 22:23 Stefno 阅读(9596) 评论(3) 推荐(7) 编辑
摘要: 理解了Go汇编语言,可以让我们对Go的理解上一个台阶! 阅读全文
posted @ 2019-03-19 23:20 Stefno 阅读(9622) 评论(13) 推荐(11) 编辑
摘要: Golang运行时的内存分配算法主要源自 Google 为 C 语言开发的`TCMalloc算法`,全称`Thread-Caching Malloc`。核心思想就是把内存分为多级管理,从而降低锁的粒度。 阅读全文
posted @ 2019-03-13 08:29 Stefno 阅读(4138) 评论(2) 推荐(1) 编辑
摘要: 写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的责任都在程序员。一不小心,就会发生内存泄露,搞得胆战心惊。切换到Golang后,基本不会担心内存泄露了。虽然也有new函数,但是使用new函数得到的内存不一定就在堆上。逃逸分析告诉你变量到底去哪儿? 阅读全文
posted @ 2019-02-28 21:26 Stefno 阅读(2618) 评论(0) 推荐(1) 编辑
摘要: defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。深受Go开发者的欢迎,但一不小心就会掉进它的温柔陷阱,只有深入理解它的原理,我们才能轻松避开,写出漂亮稳健的代码。 阅读全文
posted @ 2019-02-12 22:20 Stefno 阅读(4888) 评论(1) 推荐(3) 编辑
摘要: 大家好,给大家介绍一下,我是一个字节。相比于你们人类据说即将达到的百岁人生的寿命,我的一生简直不直一提。 所以,今天我要讲讲我的一生,让更多的人知道我的存在,知道我的故事,也为证明自己曾经存在过吧 阅读全文
posted @ 2019-01-30 16:34 Stefno 阅读(910) 评论(1) 推荐(2) 编辑
摘要: 本文将带领你深入二进制的天地,深入分析HTTP通信的所有细节!看完本文,相信你对HTTP的理解会上一个台阶! 为了对网络数据包的“流转”有更加深刻的理解,我在docker(远程)上部署一个服务,支持http方式调用。从客户端(本地)用http方式请求其中的一个接口,并得到响应数据。同时本地通过wireshark抓包,远程用tcpdump抓包,然后分析过程中的所有通信细节。悲剧是把美好的东西撕碎给人看,而我们是把复杂的东西撕碎了给人看。 阅读全文
posted @ 2019-01-17 22:44 Stefno 阅读(2665) 评论(10) 推荐(5) 编辑
摘要: 记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下去的意思,深入下去我也不懂,皆大欢喜! 作为程序员,要有“刨根问底”的精神。知其然,更要知其所以然。这篇文 阅读全文
posted @ 2018-12-26 22:15 Stefno 阅读(10203) 评论(22) 推荐(18) 编辑