2011-03-09 45 views
0

为了优化我的应用程序,我在我的qmake项目文件中测试了不同的编译器(VS2008)选项。如果我将编译器优化标志添加到我的应用程序,我是否也应该使用相同的标志重建我的工具包?

QMAKE_CXXFLAGS += /MP /Ox /arch:SSE2 /GL 

但是它发生,我认为虽然我得到了优化的二进制我的应用程序,Qt的DLL的,它依赖于不以同样的方式进行了优化。

我应该重新编译我的Qt工具包以获得相同的好处吗?如果是的话,所有的开发项目都应该优化所有的依赖项?

+0

编译器优化只对热点很重要 - 程序计数器(IP)注册表花费相当大的时间的代码。因此,如果你的个人资料或随机暂停,你可以看到最好的地方,如果有的话。许多应用程序几乎全部用于调用系统例程,在这种情况下,寻找可比编译器优化避免的调用会带来更多好处。 – 2011-03-09 16:19:16

回答

1

我不认为重新编译Qt在这里有意义。通常情况下,(释放模式)DLL将在大多数用途上进行充分优化编译。通常Qt用于GUI,如果你的应用程序由于Qt代码速度不够快而导致性能问题,那么还有其他原因。专注于找到这些东西,而不是浪费时间来优化代码,这些代码只负责1%的应用程序运行时(当然,1%只是一个猜测,使用一个分析器来查明你是否真的想知道)。

有时库有两种类型:一个是生产DLL,一个是调试版。您应该确保,在发布模式下构建时,适当的DLL会被链接。

相关问题