Golang 的内存对齐
今天又在网上看到了一个以前不知道的概念,内存对齐?从名字就可以看出来,这是一个偏性能优化类的概念。
今天又在网上看到了一个以前不知道的概念,内存对齐?从名字就可以看出来,这是一个偏性能优化类的概念。
在 HTTP 中传输数据有一个 chunked 的方式, 又称“分块传输”。在响应报文里用头字段Transfer-Encoding: chunked 来表示。意思是报文里的 body 部分不是一次性发过来的,而是分成了许多的块(chunk)逐个发送。而 HTTP2.0 协议作为 HTTP协议的升级,自然是对chunked模式做支持?不然!
HTTP2 是没有 chunked 的!
在 HTTP/1.x 时代,支持Body压缩,Header不支持压缩。而现在一个网页可能有几十到上百个请求,一个请求Header至少 500Byte 以上。而这些页面的请求Header大多都是一些重复的字符如UA、Cookie,会消耗不必要的带宽,增加延迟。
在HTTP/2.0中,引入了Header Compression(rfc7541),头部压缩技术使用了HPACK,有效的压缩了Header。
最常见的指标有可能是最容易遗漏和忽视的,以前面试的过程中经常被问到一些问题定位排查的运维问题,但是一些经常耳熟能详的名词被深究问下去就不知所以了。 比如:1. 系统负载如何查看?系统负载高的原因都有可能是哪些? 什么是系统负载? 2. swap 是什么?为什么kubernetes建议禁用 swap 等。
下面做一些总结
在日常Golang编程过程中,需要对 Go 代码做静态代码检查。虽然 Go 命令提供了 go vet
和 go tool vet
,但是它们检查的内容还不够全面。go 的 vet 工具可以用来检查 go 代码中可以通过编译但仍然有可能存在错误的代码。包括并发访问安全、死锁、泄露上下文、结构体反射等等,参考文章