如何设置编译器标志?
鲨鱼告诉我:
这条指令是一个开始 未与 16 字节对齐的循环 地址边界。为了最佳 性能,你应该调整 使用编译器启动热循环 指示。对于 gcc 3.3 或更高版本,使用 -falign-loops=16 编译器标志。
for (int i=0; i < 4; i++) { // line with the info
//...code
}
我将如何设置该标志,它真的能提高性能吗?
Shark told me this:
This instruction is the start of a
loop that is not aligned to a 16-byte
address boundary. For optimal
performance, you should align the
start of a hot loop using a compiler
directive. With gcc 3.3 or later, use
the -falign-loops=16 compiler flag.
for (int i=0; i < 4; i++) { // line with the info
//...code
}
How would I set that flag, and does it really improve performance?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Shark 的提示并不总是合适的。在大多数情况下,对齐循环不会产生太大差异。重点关注代码中的瓶颈,看看在算法/代码级别可以做什么,然后再进行此类非常小的调整。
The hints from Shark are not always appropriate. Aligning loops doesn't make a lot of difference in most cases. Focus on the bottlenecks in your code and see what you can do at the algo/code level before resorting to very minor tweaks such as this.