我有test.exe,没有源代码,但有调试信息,并针对intel generic进行了优化。
您知道任何可以优化可执行文件的工具吗? 例如:我想优化核心2 duo的exe,对于较小的缓存,删除调试信息等。
我认为使用gcc进行反汇编和重新编译就可以了,但是有人做过这样的事吗?我获得了一些表现吗? [编辑] - 反汇编和重新编译很可能不会起作用。
答案 0 :(得分:2)
AFAIK,你无能为力,让它跑得更快。
尝试反编译/重新编译是值得的。你可能会得到一些仍然可行的东西,也许某些东西可以被矢量化。但我想可能不是。
为了优化代码,编译器需要知道哪个行为是程序执行所需操作的必要条件,哪个行为只是原始编译器选择的特定指令的假象。知道什么是重要的和什么不重要的信息基本上在x86机器指令的噪音中丢失了。
也许会有一些窥视孔优化,例如用一个SSSE3替换一系列SSE2指令,或者其他东西,但可能没什么重要的。
您可以使用strip
使二进制文件更小,但在运行exe时,调试信息甚至不会加载到内存中。它位于自己的部分,因此调试信息不会与代码/数据/所需符号混合在一起,因此不会稀释缓存密度。只有在复制可执行文件时才会这么做。