如何在基准测试中打败Go优化器?

问题描述 投票:-1回答:1

在Rust中,你可以使用 black_box 函数来强制编译器使用

  1. 假设函数的参数被使用(迫使它不要优化掉产生该值的代码)。
  2. 不能检查它的返回值是如何产生的(阻止它进行常量折叠和其他类似的优化)。

在Go中有没有类似的设施(来完成这两种任务)?

performance go optimization rust performance-testing
1个回答
2
投票

在Go中是否有类似的设施(完成这两种任务)?

没有。

如果你想使用一个结果。分配给一个导出的全局。


1
投票

我相信 runtime.KeepAlive 根据下面的Github问题,建议使用。不幸的是,目前还不清楚函数参数是否存在任何东西,也不清楚 KeepAlive 甚至可以保证工作。

https:/github.comgolanggoissues27400。

© www.soinside.com 2019 - 2024. All rights reserved.