Go-Rust 编译器优化对比

Go

release模式 编译为x86-64

我不知道Go除了使用 go build file.go 是否还有其它命令才能真正编译为release模式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
func setBit1(reg *uint32, value uint16) {
	for i := 0; i <= 15; i++ {
		bitToSet := ((value >> i) & 1) != 0
		*reg &= ^(1 << (i + 5))
		if bitToSet {
			*reg |= 1 << (i + 5)
		} else {
			*reg &= ^(1 << (i + 5))
		}
	}
}

它生成的汇编是什么样的呢?

NAT 种类

NAT有4个类型,它们分别是:NAT1、NAT2、NAT3、NAT4。从 NAT1 至 NAT4 限制越来越多。

NAT1 完全圆锥形NAT(Full Cone NAT)

完全圆锥型NAT把一个来自内部IP地址和端口的所有请求,始终映射到相同的外网IP地址和端口;同时,任意外部主机向该映射的外网IP地址和端口发送报文,都可以实现和内网主机进行通信,就像一个向外开口的圆锥形一样,故得名。