此仓库具有基准测试,用于比较Go运行时用于从跨度偏移计算对象索引/基地址的当前“ divmagic”代码与。
在golang / go#e8b82789cda6c9d9e3dfc9a652b4d7a823b834f2中进行了基准测试。
BenchmarkDivMagic_objIndex和BenchmarkDivMagic_findObject是Go运行时当前使用的代码。 2、3和4变体试图简化它们以提高性能(例如,掩盖移位计数,以便编译器不需要插入边界检查,或消除其他比较以减少分支)。
BenchmarkLemire_objIndex和BenchmarkLemire_findObject是golang.org/cl/300994中包含的重写。
联想ThinkPad X1 Gen 6(Kaby Lake R):
goos: linux
goarch: amd64
pkg: git