Go pprof 使用

1 概览

pprof 是 Go 提供的一套可视化和分析性能分析数据的工具。 主要包含两部分

  • runtime/pprof 编译进了每个 go 程序

  • go tool pprof 用来分析 profile

Profiling 可以翻译成画像,类似在侦破案件的时候警察会对嫌疑人做的画像。profiling 就是对应用做的画像,描述应用使用 CPU 和内存的情况,用了多少,在哪些地方使用等等。

阅读全文 →

Go 中 JSON 的特殊使用技巧

修改序列化后的 Key 值

 type User struct {
     ID int `json:"id"`
     Name string `json:"name"`
 }

 // output
 {"id": 12, "name": "laily"}

数字转字符串

前端 js 对 int64 的处理可能会因为溢出导致无法准确处理,因此我们期望可以返回字符串类型。

 type User struct {
     ID int64 `json:"id,string"`
 }

 // output
 {"id":"123131"}

忽略零值

 type User struct {
     ID int `json:"id,omitempty"`
     Name string `json:"name,omitempty"`
 }

如果 ID 是 0,Name 是空字符串则在序列化的结果里不会有这两个 key。

阅读全文 →

git 原理

git 原理

数据模型

基本概念

BLOB(binary large object):二进制大对象,是一个可以存储二进制文件的容器。

Untracked:文件刚创建,从未被执行过 git add,在工作区(Working Directory)

阅读全文 →