首页 >后端开发 >Golang >如何防止Go中的函数内联?

如何防止Go中的函数内联?

Barbara Streisand
Barbara Streisand原创
2024-12-01 16:50:11442浏览

How to Prevent Function Inlining in Go?

防止 Go 中的函数内联

在 Go 中,编译器可以通过内联函数自动优化代码性能。但是,在某些情况下您可能希望禁用此行为。

问题:

如何指示 Go 编译器不内联特定函数?

答案:

防止内联特定函数,使用 //go:noinline pragma:

//go:noinline
func isPrime(p int) bool {
    // ...
}

对于禁用所有内联的全局设置,请使用 -gcflags=-l 标志:

go build -gcflags=-l primes.go

此标志是相当于GCC中的-O0优化级别,生成未优化的代码,没有任何内联。

参考Dave Cheney 的博客文章“Go 中的中栈内联”了解有关此技术的更多详细信息。

以上是如何防止Go中的函数内联?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn