我正在写一个服务器应用程序,其中有大量的源代码。在我的英特尔凌动z510上编译应用程序大约需要15-20分钟,在我的英特尔i7上大约需要2-3分钟。
我对交叉编译非常陌生,因为我从来没有这样做过。我找不到任何关于如何交叉编译到Z510的参考资料。我找到了一篇关于atom here优化标志的很好的SO文章。但是,没有说明如何在英特尔i7 pc上为英特尔凌动处理器使用它们。
我假设在我的i7上编译的任何东西都会默认针对我的i7进行优化,这会导致Atom的性能下降。任何建议/搜索词/网站都将非常感谢。
一如既往地,提前感谢您。
编辑:我使用的是gcc 4.4。很抱歉。( Ubuntu 10.04自带的那个)
常量
发布于 2012-03-31 11:52:33
我认为您认为在Atom上编译的代码会自动针对Atom进行优化的假设是错误的。
即使你通过-march=native -mtune=native
请求该行为,gcc 4.4也不知道如何针对Atom进行优化。
而且,只有当你传递这些标志来获得针对核心i7优化的代码时,针对核心i7优化的代码才会比在Atom上编译的代码运行得更慢(我认为这也需要更高版本的gcc)。去掉这些标志将导致i7上的编译器生成与Atom上的相同的代码。
发布于 2012-03-31 05:00:42
如果你在你的i7上,想要编译与你的Atom兼容并优化的二进制文件,只需对gcc使用-march=atom
选项即可。生成的二进制文件应该可以工作,条件是您在两个系统上运行相同的操作系统(这包括同意32/64位),并且存在任何必要的运行时依赖项。
https://stackoverflow.com/questions/9948464
复制相似问题