Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过Visual Studio全程序优化提高性能_C++_Visual Studio 2010_Optimization - Fatal编程技术网

C++ 通过Visual Studio全程序优化提高性能

C++ 通过Visual Studio全程序优化提高性能,c++,visual-studio-2010,optimization,C++,Visual Studio 2010,Optimization,我们的产品是以dll或静态库的形式提供的库。我注意到在VisualStudio中使用全程序优化可以提高30%左右的性能。这很好,但指的是 我认为不建议对交付给客户的库使用整个程序优化 同一篇文章提到性能提高了约3-4%。现在我们看到了10倍于预期的性能提升,我在想我们是否做错了什么 不知道如何表述,但我会尝试一下:显然我们的代码库有一个WPO可以很好解决的“问题”。无论这个“问题”(或问题?)是什么,它在其他软件中都不那么重要,因此WPO的影响相对较小。现在我的问题是这个问题可能是什么?我们希望

我们的产品是以dll或静态库的形式提供的库。我注意到在VisualStudio中使用全程序优化可以提高30%左右的性能。这很好,但指的是 我认为不建议对交付给客户的库使用整个程序优化

同一篇文章提到性能提高了约3-4%。现在我们看到了10倍于预期的性能提升,我在想我们是否做错了什么


不知道如何表述,但我会尝试一下:显然我们的代码库有一个WPO可以很好解决的“问题”。无论这个“问题”(或问题?)是什么,它在其他软件中都不那么重要,因此WPO的影响相对较小。现在我的问题是这个问题可能是什么?我们希望手动优化我们的代码,因为打开WPO不是一个选项。

可能您多次调用了一些函数,由于在源文件中定义了WPO,这些函数在没有WPO的情况下无法内联。您可以使用探查器来识别这些代码,然后将它们移动到标题中,并将它们标记为
内联

,因此,在让编译器优化整个代码之前,最好先仔细查看您自己的代码。@Kevin:是的,但是自己编写SSE代码会导致无法阅读的代码,而优化器只是保持现有代码不变。@MSalters您是对的,在今天的编译器中,您甚至无法在像这样的低级优化方面比编译器做得更好。但我的意思是,复杂的算法可以重新排列以获得更好的性能。即使没有POGO,VC++也没有链接时间优化吗?@nosenseal:不知道,我从来没有使用过那个编译器。这只是对一个主要优化的一般观察,如果没有某种完整的程序优化程序,这是不可能的。