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 空结构体

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

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

Golang 调度器

golang scheduler

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

Golang 循环引用分析和解决

golang package cycle import

在 Golang 中是不允许出现两个 Package 有循环引用的情形,这种情况编译器会编译报错:import cycle not allowed 编译器一般通过 Kahn 算法来确定源代码文件的编译依赖关系,如果一个 Package 被重复的访问则说明存在环也就是循环引用的情况。 假设 我们存在

GO JSON 的序列化与反序列化

golang json marshal and unmarshal

在 Golang 中对于 json 的序列化和反序列化的控制大概有三种方式\n在默认的 JSON TAG 加上控制标签\n实现MarshalJSON() ([]byte, error)和UnmarshalJSON(b []byte) error 覆盖默认的 JSON 序列化和反序列化方法\n利用反射解析