首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go语言原理与实践
長夜難明
创建于2022-11-25
订阅专栏
Go 内置数据结构原理与性能优化技巧。 Go 中锁的最佳实践、避坑指南与实现原理。 Go 语言内存管理。 Go 调度循环与抢占。
等 2 人订阅
共17篇文章
创建于2022-11-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go 的 string类型
1. Go 原生字符串的好处 1.1 string类型的数据是不可变的,提高了字符串的并发安全性和存储利用率。 Go 语言规定,字符串类型的值在它的生命周期内是不可改变的。如果我们声明了一个字符串类型
Go包管理的前世今生
1. 历程 Go程序由Go包组合而成,Go程序的构建过程就是确定包版本,编译包并将目标文件链接在一起的过程 而包的管理经历了三个迭代,分别是最初的 GOPATH、1.5版本的 Vendor 机制以及现
Go 程序是怎样跑起来的
0. 引入 我们从一个 Hello World 的例子开始: 用 vim 打开 hello.go 文件,在命令行模式下,输入命令: 就能在 vim 里以十六进制查看文件内容: 最左边的一列代表地址值,
Golang 调试与性能
1. 如何分析程序的运行时间与CPU利用率情况? 1.1 shell自带的time指令 real:从程序开始到结束,实际度过的时间; user:程序在用户态度过的时间; sys:程序在内核态度过的时间
Go Channel 深度解析
1. 并发模型 1.1 并发与并行 我们一直说写的代码是并发的/并行的,但如果在只有单核机器上跑并行的代码,它还能并行吗?你就是再天才,也无法写出并行的程序。充其量就是看起来并发(多个线程在分时共享
GO 垃圾回收 再解
0. 前提引入 在各种流传甚广的 C 语言葵花宝典里,一般都有这么一条神秘的规则,不能返回局部变量: duang! 当函数返回后,函数的栈帧(stack frame)即被销毁,引用了被销毁位置的内存轻
Go GC 深度解析
GC 的认识 1. 什么是 GC,有什么作用? GC,全称 GarbageCollection,即垃圾回收,是一种自动内存管理的机制。 当程序向OS申请的内存不再需要时,GC 将其回收并供其他代码复用
空
1111111111111111111111111111111111111111111111111111111111111111111111111
Go Map 深度解析
1. Map 简介 在计算机科学里,被称为相关数组、map、符号表或者字典,是由一组 <key, value> 对组成的抽象数据结构,并且同一个 key 只会出现一次。 简而言之:map 是由 key
Go 内存分配
本章开始先介绍了 TCMalloc算法,随后引入了 Go的内存分配,介绍了 arena、bitmap、spans区域。 size class以及span class。。。
Go reflect 深度解析
1. 为什么要用反射 需要反射的常见场景: 有时你需要编写一个函数,但是并不知道传给你的参数类型是什么,可能是没约定好;也可能是传入的类型很多,这些类型并不能统一表示。这时反射就会用的上了。 有时候需
Go 协程的由来 与 GMP模型
# 1. 由 yield 函数 引来协程 我们先看一段代码 ```py def count(): c = 1 for i in range(5): print(c) c += 1 count() pr
Go unsafe 深度解析
1. Go指针相对于C指针的区别 Go 的指针多了一些限制。使其既可以享受指针带来的便利,又避免了指针的危险性。 限制一:Go 的指针不能进行数学运算。 来看一个简单的例子: 上面的代码将不能通过编译
Go interface 深度解析
interface 1.1 接口基本概念 接口是一组行为规范的集合。 只要结构体拥有接口里声明的所有方法,就称该结构体“实现了接口”。一个struct可以同时实现多个接口。 接口的赋值 1.2
Go context 深度解析
什么是 context Go 1.7 标准库引入 context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。 context
Go 逃逸分析
前提 栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。 操作方式类似于数据结构中的栈。 内存分配比堆上快很多。 堆区(heap): 一般由程序员分配释放, 若程序员不释
Go Slice 深度解析
对Slice和Array进行对比。在runtime包中探究扩容奥秘。三种append方式孰优孰劣?简单案例加深Slice的印象。汇编代码深度刨析Slice的内在