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

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

Barbara Streisand
发布: 2024-12-01 16:50:11
原创
446 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板