在 Golang 中禁用数组/切片边界检查以提高性能

Pea*_*ach 5 go

我正在编写一个 NES/Famicom 模拟器。我注册了一个回调函数,每次渲染像素时都会调用该函数。这意味着我的回调函数将被调用大约350万次(256width * 240height * 60fps)。

在我的回调函数中,有很多数组/切片操作,我发现每次我在其中索引一个元素时,Go 都会进行边界检查。但索引是位和运算的结果,因此我可以看出它不会超出两个界限。

所以我想问一下有没有办法禁用边界检查?

谢谢。

小智 5

使用gcflags您可以禁用边界检查。

go build -gcflags=-B .
Run Code Online (Sandbox Code Playgroud)