Visual studio 2013 VS2013 C++;:慢链接过程 你是否曾经在C++项目编译中经历过一个缓慢的链接过程(我使用VS2013)?在5分钟的构建之后,我得到了15分钟的链接过程。重建或Visual Studio重新启动无法修复此问题。 任务管理器显示mspdbsrv.exe占用了一个完整的内核(4核上占25%),并且pdb文件创建非常慢,达到50MB后的Kb。 其他信息: 在可接受的时间内在另一台计算机上构建和链接同一项目 防病毒软件已禁用 我已尝试更改pdb文件创建位置:未成功 我已将链接器输出设置为详细,但它会在一个调试行停止,然后一直在那里等待 VS2013更新为SP4 我笔记本电脑上的硬盘活动指示灯大多已关闭,因此磁盘上没有完整的活动 我正在运行Windows7Pro VS2013以管理员权限运行

Visual studio 2013 VS2013 C++;:慢链接过程 你是否曾经在C++项目编译中经历过一个缓慢的链接过程(我使用VS2013)?在5分钟的构建之后,我得到了15分钟的链接过程。重建或Visual Studio重新启动无法修复此问题。 任务管理器显示mspdbsrv.exe占用了一个完整的内核(4核上占25%),并且pdb文件创建非常慢,达到50MB后的Kb。 其他信息: 在可接受的时间内在另一台计算机上构建和链接同一项目 防病毒软件已禁用 我已尝试更改pdb文件创建位置:未成功 我已将链接器输出设置为详细,但它会在一个调试行停止,然后一直在那里等待 VS2013更新为SP4 我笔记本电脑上的硬盘活动指示灯大多已关闭,因此磁盘上没有完整的活动 我正在运行Windows7Pro VS2013以管理员权限运行,visual-studio-2013,msbuild,linker,build-process,pdb-files,Visual Studio 2013,Msbuild,Linker,Build Process,Pdb Files,谢谢。是否使用链接时间代码生成?在VS2010上,该步骤是单线程的,因此比表面上的编译步骤花费的时间要长得多。根据博客文章,在更高版本中,这一步骤被改进为多线程。它还提到PDB访问是一个瓶颈。那么,也许您在该系统上有一个旧的mspdbsrv.exe?查看文件上的版本信息,并跨计算机进行比较。也可能有一些选项来控制它的锁定和多用途行为,隐藏在某个地方 修复了将“调试信息格式”从/ZI(编辑并继续功能)更改为/ZI的问题。我仍然不知道为什么这只会导致特定计算机上的链接变慢,而不会导致其他计算机上的链

谢谢。

是否使用链接时间代码生成?在VS2010上,该步骤是单线程的,因此比表面上的编译步骤花费的时间要长得多。根据博客文章,在更高版本中,这一步骤被改进为多线程。它还提到PDB访问是一个瓶颈。那么,也许您在该系统上有一个旧的mspdbsrv.exe?查看文件上的版本信息,并跨计算机进行比较。也可能有一些选项来控制它的锁定和多用途行为,隐藏在某个地方

修复了将“调试信息格式”从/ZI(编辑并继续功能)更改为/ZI的问题。我仍然不知道为什么这只会导致特定计算机上的链接变慢,而不会导致其他计算机上的链接变慢。希望这能帮助人们解决同样的问题。

使用任务管理器,查看进程路径位置,它指向C:\Program Files\Microsoft Visual Studio 12.0\VC\bin,因此它使用的是VS2013可执行文件。您可以找到关于通过线程、LTCG、PDB访问改进链接时间的博客文章,等等,然后联系这些帖子的作者,问问为什么它对你来说就像旧的VS10。当然,燃烧100%内核是个问题。很难找到原因,它已经稳定了很长一段时间。使用调试器查看,启动另一个VS实例,并在进程空闲时使用Tools+Attach to Process附加到进程。查找异常数量过多之类的情况,当您反复使用Debug+Break All来猜测可能挂起的位置时,查看堆栈跟踪。给我们看些东西。强烈建议致电Microsoft支持部门,他们将要求您记录ETW跟踪并发送给他们。您是否尝试以管理员身份运行VS2013?是,完成。我会添加到列表中above@HansPassant:使用“附加到进程”功能,然后单击“全部中断”位于库C:\Program Files\Microsoft Visual Studio 12.0\VC\bin\mspdbcore.dll中的某个位置。请检查下的并行编译设置“活动配置->C/C++->常规->多进程编译,在VS2013中默认关闭。还可能需要将代码生成->启用最小重建更改为否。