Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.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 2010 C++;大型项目的链接器性能_C++_Performance_Visual Studio 2010_Linker - Fatal编程技术网

C++ Visual Studio 2010 C++;大型项目的链接器性能

C++ Visual Studio 2010 C++;大型项目的链接器性能,c++,performance,visual-studio-2010,linker,C++,Performance,Visual Studio 2010,Linker,在我的公司,我们仍在使用VisualStudio2005,但正在研究VisualStudio2010,希望它能加快我们开发周期的某些部分。目前,我们最感兴趣的是VisualStudio 2010的C++链接器的性能。在构建我们的应用程序时,我们要查看40秒到2分钟之间的链接时间,这取决于机器配置(SSD与HDD)以及Windows的磁盘缓存中是否已经有内容。我们使用VS2010链接器而不是VS2005链接器的一个简单测试显示了大约25%的改进。我们希望看到更大的改进,因为我们认为链接器现在可以使

在我的公司,我们仍在使用VisualStudio2005,但正在研究VisualStudio2010,希望它能加快我们开发周期的某些部分。目前,我们最感兴趣的是VisualStudio 2010的C++链接器的性能。在构建我们的应用程序时,我们要查看40秒到2分钟之间的链接时间,这取决于机器配置(SSD与HDD)以及Windows的磁盘缓存中是否已经有内容。我们使用VS2010链接器而不是VS2005链接器的一个简单测试显示了大约25%的改进。我们希望看到更大的改进,因为我们认为链接器现在可以使用多核


这真的是我们在切换到VS2010时所期望的25%的改进吗?还是有一些神奇的链接器开关可以将链接时间减少到可接受的水平?

25%的时间减少也不错。如果您想要更快的链接时间,请尝试使用DLL进行动态链接,而不是使用静态库进行链接。这通常要快得多。

我的理解是,MS在VS2010中对链接器所做的重大更改(性能方面)是在单独的线程上编写.pdb文件。当然,由于链接器的作用远不止于此,因此它对改善整体链接时间的作用是有限的:

这里有一篇文章展示了如果您对该分析感兴趣,如何获得更详细的计时统计数据:


无论如何,在我看来,仅仅通过添加一套新的工具就可以提高25%的速度,这似乎是一个相当好的结果。

为什么Microsoft会添加一个神奇的开关,使程序更快,但却不打开它?因为这个神奇的开关可能不会在所有情况下都工作,所以他们默认情况下会关闭它。这也是我在开发过程中所做的。在开发过程中,我使用许多小DLL构建应用程序,但当我必须为客户制作一个可执行文件时,我会将其链接到一个大的可执行文件中。