摘要:
前言 很久以前就听过过内存逃逸这个词, 最近了解了一下, 才发现是个很简单的概念. 只要把前言部分看完, 就已经了解了. 来吧... 在介绍内存逃逸之前, 我们先用C语言来引出这个概念. 我们的进程在内存中有栈内存和堆内存的概念, 栈内存是函数执行的局部内存, 会随着函数的结束而全部释放, 而堆内存 阅读全文
摘要:
前言 在分布式系统中交换信息, 部分成员可能出错导致发送了错误的信息, 在这种情况下如何达成共识. 这就是拜占庭将军问题所要解决的. 问题的简要描述如下: 3个军队协同作战(为了简单易懂, 以3个军队描述) 每支军队的作战策略有两种"进攻"和"撤退" 每个军队之间通过信使传递消息 问: 如何达成共识 阅读全文
摘要:
前言 在开始之前, 先来引出问题. 有这样一段go代码: func main() { var wg sync.WaitGroup wg.Add(2) var x, y int go func() { defer wg.Done() x = 1 fmt.Println(fmt.Sprintf("y=% 阅读全文
摘要:
为了满足好奇心吧, 简单介绍下HTTP的各个版本. 了解HTTP协议是如何一步步发展至今的. 这篇文章不会涉及太多原理 HTTP/0.9 HTTP/0.9 诞生于1991年, 甚至都没有RFC标准, 就是一个简单的文档. 这个版本的HTTP协议, 只是简单规定了: 请求内容为: GET /a/b/c 阅读全文
摘要:
前言 在Go的编程中, error的使用场景数不胜数, 主要就是用来处理各种异常情况. 长久以来, 我的使用方式都是这样的: err := errors.New("fail") if err != nil{ //do somethine... } 简单易懂. 但是, 如果我们的调用链是这样的func 阅读全文
摘要:
场景 mac锁屏后, 屏幕一直亮着, 不会熄屏变暗 解决 执行命令, 查看具体哪个软件导致屏幕常量 pmset -g | grep displaysleep 比如这里, 是因为百度云盘, 关掉就行啦. 阅读全文
摘要:
场景 有如下代码: ctx := context.WithValue(context.Background(), "k1", "v1") ctxValue := reflect.ValueOf(ctx).Elem() fieldValue := ctxValue.FieldByName("key") 阅读全文
摘要:
这篇文章是我研究容器内存整理出的相关内容. 前后内容并没有上下文关系, 每个知识点都可以单独查看. 内存控制 使用这样的命令启动一个容器docker run -d -m 300M xxx. 可以限制容器使用的内存最大为300M. 那么docker是如何实现容器的内存限制呢? 其实是操作系统已经做好了 阅读全文
摘要:
前言 我们在平常强制停用一个进程的时候, 会选择什么命令? 一般在测试使, 不考虑程序突然中断带来的影响, 直接使用kill -9 pid强制停止就行. 但是, 就在刚刚, 我启动了一个docker容器, 进入容器后执行命令kill -9 1没有任何效果??? 啊这, 为什么呀? 尝试 为了解释这个 阅读全文
摘要:
前言 在实际使用过程中, 经常会碰到Redis响应延迟高的问题, 故将可能出现的问题及优化思路整理一下, 以防不时之需. 这里罗列的问题是目前能够想到的, 后续如果遇到新的问题会再回来更新的. 业务修改 主要从Redis的业务使用方面处理, 不需要动到Redis实例. 慢查询 是否存在处理时间过久的 阅读全文