摘要: 1 前言 1.1 Go汇编 Go语言被定义为一门系统编程语言,与C语言一样通过编译器生成可直接运行的二进制文件。这一点与Java,PHP,Python等编程语言存在很大的不同,这些语言都是运行在基于C语言开发的虚拟机上,如果想深入了解运行原理只需要看懂对应的C语言开发的虚拟机(绝大部分程序员应该都对 阅读全文
posted @ 2020-01-15 15:52 jimshi 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 一般程序的内存分配 在讲Golang的内存分配之前,让我们先来看看一般程序的内存分布情况: image 以上是程序内存的逻辑分类情况。 我们再来看看一般程序的内存的真实(真实逻辑)图: image Go的内存分配核心思想 Go是内置运行时的编程语言(runtime),像这种内置运行时的编程语言通常会 阅读全文
posted @ 2020-01-15 14:50 jimshi 阅读(4941) 评论(1) 推荐(3) 编辑
摘要: 一,前言 深入学习golang,必须要了解内存这块,这次会仔细讲解下内存这块,包括内存分配,内存模型,逃逸分析。让我们在编程中能注意下这块。 二,内存分配 (1) 这里先了解四个相关数据结构 1,mspan 通过next和prev,组成一个双向链表,mspan负责管理从startAddr开始的N个p 阅读全文
posted @ 2020-01-15 14:30 jimshi 阅读(794) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s?__biz=MjM5MDUwNTQwMQ==&mid=2257483697&idx=1&sn=6e33567bc45b59dea86d23dc2a95c497&scene=21#wechat_redirect 写过C/C++的同学都知道,调用著名 阅读全文
posted @ 2020-01-15 14:06 jimshi 阅读(125) 评论(0) 推荐(0) 编辑
摘要: Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需要进行系统调用。 Golang运行时的内存分配算法主要源自 Google 为 C 语言开发的 TCMalloc算法,全称 Thre 阅读全文
posted @ 2020-01-15 13:13 jimshi 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 文章目录 Persistent Connection Content-Length Transfer-Encoding: chunked 本文作为我的博客「HTTP 相关」专题新的一篇,主要讨论 HTTP 协议中的 Transfer-Encoding。这个专题我会根据自己的理解,以尽量通俗的讲述,结 阅读全文
posted @ 2020-01-15 10:53 jimshi 阅读(211) 评论(0) 推荐(0) 编辑