2010-04-13 64 views
0

Shark已经确定了一个需要改进的代码区域 - 未对齐循环开始 并建议添加-falign-loops = 16(gcc编译器标志)。我已经将这个添加到了 iphone Xcode中的其他C标志都用于依赖项目和顶级项目。然而,它仍似乎不影响性能和鲨鱼仍报告 所以看来它不工作了同样的问题。在Xcode中使用gcc编译器标志

我是否正确地做这件事?

回答

1

从鲨鱼的提示并不总是有益或适宜 - 你必须做出最后的决定 - 如果你的循环是相当小的,然后循环对齐可能做一个小的差异,但也有可能是更重要的事情,你会看到在这之前进行优化。

+0

嗯,我至少希望应用编译器标志后,鲨鱼推荐,至少不会抱怨说issue.Even如果它没有显著改善性能,这个问题我已经是鲨鱼还是建议我使用-falign-循环= 16标志,即使我已经有了。 – tech74 2010-04-13 15:09:44

+0

是循环起始地址现年16字节对齐?应该有NOP指令之前的循环来实现这一目标的开始。这是不那么对齐16字节这可能是因为编译器是忽略了'-falign-循环= 16'切换或者是一些其他的问题。 – 2010-04-13 15:31:24

+0

嗨,有些是,有些不是。该代码是做浮点数学和它的时间太长,鲨鱼也抱怨使用单FP LDM/STM插件的并建议使用多个LDM/STM。 这里是要优化的循环 int i; float * a; float object [40]; float val; (i = 0; i tech74 2010-04-13 16:35:04

1

你编译C文件或C++文件?如果C++,那么你可能想检查他们是否通过其他C++标志设置。

在Xcode构建结果窗口中有一个按钮,显示构建成绩单,你可以用它来确保编译器标志是通过使其与gcc

+0

嗨,感谢他们似乎正在通过命令行无论如何,虽然不知道为什么它没有影响:( – tech74 2010-04-13 14:19:05