我刚刚在测试我正在开发的程序,我发现当我使用-g编译它时,它执行速度会更快(这是一个具有统计学意义的变化),只快了3μs。这对我来说没有任何意义 - 我认为-g标志不应该影响程序执行,即使它这样做也会使其运行更慢而不是更快。
有人能告诉我为什么会这样吗?是否会改变程序的执行流程?我没有使用-O进行编译,因为我需要它按照原样执行,但如果-g可以在不改变指令顺序的情况下使其运行更快,那我显然应该使用-g。
所以我需要确切地知道-g标志对程序所做的更改。
编辑:我运行的测试越多,t值就越大(差异变得越来越有统计学意义)。这绝对不是测量误差 - 一定出了什么问题。
有人能告诉我为什么会这样吗?是否会改变程序的执行流程?我没有使用-O进行编译,因为我需要它按照原样执行,但如果-g可以在不改变指令顺序的情况下使其运行更快,那我显然应该使用-g。
所以我需要确切地知道-g标志对程序所做的更改。
编辑:我运行的测试越多,t值就越大(差异变得越来越有统计学意义)。这绝对不是测量误差 - 一定出了什么问题。