![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
从0开始的go语言
一条菜🐶的Go语言之旅
正义的非洲大酋长
这个作者很懒,什么都没留下…
展开
-
Tcmalloc介绍
tcmalloc 是Google推出的一种内存分配器,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配函数。tcmalloc的内存分配策略tcmalloc 分配的内存主要来自全局缓存堆和进程的私有缓存。小容量的内容申请直接从私有缓存分配,如果私有缓存不足就从全局缓存中申请一部分作为私有缓存。大容量的内存申请则直接走全局缓存。大小容量的边界是32k,超过32K就是大,小于32K就是小。内存的数据结构tcmalloc 中,内存采用数组+链表的形式管理(有点像Java的hash原创 2020-05-28 17:11:18 · 406 阅读 · 0 评论 -
Go : GC
1、何时触发GC?当堆上分配大于32k的对象的时候开始检测是否满足GC条件,满足则开始自动GC。func mallocgc(size uintptr, typ *_type, needzero bool) unsafe.Pointer {...shouldhelpgc := false// 分配的对象小于 32K byteif size <= maxSmallSize { ...} else { shouldhelpgc = true ...}...// g原创 2020-05-28 16:33:29 · 191 阅读 · 0 评论 -
用GO自己动手做一个bilibili (二)API开发--搭建基本的项目框架
因为API的开发整个过程较大,步骤较为繁琐,所以这里分为了好几个章节,慢慢挖坑。搭建文件结构根据之前的设计,先把实现API功能的文件结构搭起来。其中video_server是项目的总目录。在总目录下,包含了项目的主体功能。现阶段的目标是项目的API开发设计,所以暂时只需要在总目录下建立一个API目录即可。api目录下是api的各个功能项:auth是用户权限的实现。dbops是对数据库的操作的实现。https 是对接口中所需定制的response方法实现。model是项目所需要用到数据模型。原创 2020-05-14 18:04:19 · 562 阅读 · 0 评论 -
Go :数组
数组的定义方式:1、var nums [3]int // 数组内容为{ 0, 0, 0}这样的定义方式指定了 数组长度,默认数字类型初始值为0,字符类型为"" 其他类型为nil2、var nums = [...]int{1,2,3} // 数组内容为 {1, 2, 3}如果在数组长度的位置出现的时[…]则说明数组长度不确定。这中定义方式在定义时即指定了数组的初始值,数组的长度为初始值元素的个数3、var nums = [...]int{1:3, 4:3} //数组内容为{0, 3原创 2020-05-13 18:26:57 · 1027 阅读 · 0 评论 -
用GO自己动手做一个bilibili (一)网站设计
网站设计总体架构设计数据支持数据库API前端视频流调度流本地视频api设计上传/观看/下载/删除发表挂靠用户视频资源评论用户模块:创建用户:URL : /user , method=Post ,sc: 201 400 500201:创建成功400 :请求错误500: 内部错误用户登录:URL : /user/:username , method=Post ,sc: 20...原创 2020-04-30 16:53:18 · 571 阅读 · 0 评论