好的,这是我的问题:
Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
我目前使用的所有优化标志都是-O3
(老实说,这给了我一个意想不到的提升;所以我没有再看了;但是我仍然注意到其他使用各种各样的程序旗帜......所以我觉得有点迷失......)。
还有什么我应该考虑的吗?如果是的话,是什么?
编辑: (尝试使用-O4
我收到错误;有任何想法可能会发生这种情况吗?)
0 0x10be24280 __assert_rtn + 144
1 0x10be89659 ld::tool::HeaderAndLoadCommandsAtom<x86_64>::copyEntryPointLoadCommand(unsigned char*) const + 169
2 0x10be8853c ld::tool::HeaderAndLoadCommandsAtom<x86_64>::copyRawContent(unsigned char*) const + 1084
3 0x10be7da56 ld::tool::OutputFile::writeAtoms(ld::Internal&, unsigned char*) + 598
4 0x10be79c14 ld::tool::OutputFile::writeOutputFile(ld::Internal&) + 564
5 0x10be74963 ld::tool::OutputFile::write(ld::Internal&) + 147
6 0x10be248ef main + 1263
7 0x10be13234 start + 52
A linker snapshot was created at:
/tmp/myapp-2013-00-31-150316.ld-snapshot
ld: Assertion failed: (_mode == modeFinalAddress), function finalAddress, file /SourceCache/ld64/ld64-133.3/src/ld/ld.hpp, line 657.
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:0)
在做了明显的事情(编译选项:O3,lto并且没有使用任何调试标志)之后,这是我加速程序的步骤:
1)简介。在分析之后,您将知道需要查看哪个部分/模块。
2)仪器/基准。在临界区附近放置一些时序代码。
3)实际上尝试更改代码并查看它是否更慢或更快。最大的罪魁祸首:糟糕的算法或数据结构;过度使用malloc / new。