It has only to do with the act of correct observation, and by I mean a physical contact with all sorts of objects through all the senses

Golang 一段代码性能的探究

golang concurrence performance

我们来看下面这样的一段代码 var arr []int64 func IncrArrItem(s, e int) { for i = 0; i < 200000000; i++ { arr[s]++ arr[e]++ } } Shell 这个代码的作用是对的数组中的第 s 和 e 位

CPU Cache 学习

the study of cpu cache

CPU Cache 是指 L1L2 和 L3 缓存,他们是用来缩短 CPU 访问内存时间的部件, 他们容量小于内存大于寄存器文件,但访问速度几乎接近处理器处理的速度. 缓存之所以能提高性能是利用局部原理提高内存的访问速度, 局部性原理是指程序具有访问局部区里的数据和代码的趋势, 通过在 CPU Ca

Golang 空结构体

go empty struct

空结构体是指一个 struct 里不包含任何字段 type A struct{} 它的宽度是0,占用 0 字节的内存 unsafe.Sizeof(s) // 0 由纯空结构体组成的对象也不会占用内存空间 type A struct { B struct{} C struct{} } //

golang 指针操作

golang pointer operation

在 go 语言中每个变量都有自己的地址,记录变量地址的类型称为指针类型 & 获取变量的地址,生成一个 *T 的指针类型指向取值变量 x x 必须是可以寻址的 * 获取指针指向的值 如果指针是 nil 会 panic 如果变量不是指针类型会报编译错误 invalid operation canno

filebeat 日志采集性能调优

filebeat log delay tuning

最近在线上查日志的时候发现有一个服务器上的日志时间延迟非常大,有的延迟几分钟有的延迟了好几天\n线上各个服务的日志是通过 filebeat 采集到 Elasticsearch 上的,多个服务部署的实例里面只有特定一台机器上的日志有延迟,所以排除了是 Elasticsearch 本身的问题导致的日志延迟

MySql 索引

mysql index

什么是索引 是一类可以提高数据查询速度的数据结构或者算法的集合 实现索引的方式 有序数组 散列表 跳表 AVL 平衡二叉树 红黑树 B+ 树 。。。各种其它的树 MySql 索引 MySql 中 InnoDB 索引是用过 B+树来进行实现的 B+ 树特点 一个 M 叉树 除了根节点以外每个节

Golang 调度器

golang scheduler

https//www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html https//docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sLKhJYD0Y_kqxDv3I3XMw/edi