Visual Studio 2008,2010或2012(v11)是否已编写为使用多核?

Erx*_*der 16 vb.net asp.net ide multicore visual-studio-2010

基本上我想知道2010和2012中的visual studio IDE和/或编译器是否为了利用多核环境而编写的(我知道我们可以使用并行性来定位所有版本的多核环境,但这不是我的问题) .

我试图决定是否应该获得更高的时钟双核或更低的时钟四核,因为我想尝试找出哪个处理器将给我带来Visual Studio 2010或2012(v11)的绝对最佳体验( ide和后台编译器).

如果他们在一个核心中运行最重要的部分(后台编译器和其他ide任务),那么如果运行四核,核心将更快切断,特别是如果后台编译器是最重的任务,我会想象这将是困难的在多个进程中分离,所以即使它使用多核,如果大多数处理仍然必然发生在一个核心(即VS的最重要部分),那么你可能仍然会更好地选择更高的时钟CPU.环境).

我是一名VB程序员,他们在2010年和2012年取得了很大的性能提升,恭喜(除了可怕的灰度设计和大写无处不在),但我希望能够无缝地使用VS ......任何人都有想法?另外,我不太担心解决方案加载时间,因为我一次只编写一个项目.

谢谢.

Meh*_*ari 13

MSBuild支持并行构建项目.Visual Studio 2008利用多个处理器来编译项目.


mon*_*ero 11

正如其他人所说,MSVS 2010确实使用多个进程进行编译.虽然,它不会自动转换为大大减少的编译时间.我刚刚用一个中等大小的C++项目(大约200个文件)进行了测试.它在3.4 Ghz的双核心上比2.8Ghz的四核心更快.虽然双核处理器更便宜.(系统实际上与4GiB DDR2 Ram相同).我还必须注意,在编译期间,双核处理器的最大加载速度为70%.如您所见,如果VS2010甚至无法完全加载2个内核,那么拥有4个或更多内核的重点是什么?


Bri*_*ian 8

我认为你可能更适合使用更高时钟的双核心.我认为VS(以及今天的大多数应用程序)还没有充分利用多线程.VS可能有几十个线程正在运行,但我认为只有一部分操作才能真正利用它们.很多VS实现是在STA线程上运行的C++ COM组件,因此UI线程在许多场景中完成大部分工作.作为VS2010的一部分,VS shell的许多部分正在托管代码中重写这一事实将有助于打破更多这些古老的组件STA依赖关系.正如其他人所提到的,一些关键场景(比如构建一个大型解决方案)已经充分利用了多个内核(MSBuild可以很好地并行运行),所以如果那些主导你关心的内容,那么更多内核会更好.但是对于像IDE UI使用和后台编译这样的东西,我认为其中大多数仍然主要是单线程的.我有一个四核盒子在工作,我很少看到VS2008使用超过25%的CPU资源.(我没有足够认真地使用VS2010来了解哪些情况更好,但我知道至少有一些更好.)

  • 谢谢brian,这是我心中想到的完美澄清,在2.0ghz四核和2.93ghz双核之间,我相信2.93ghz双核可能是最好的方式(如果其他人也想知道,基于当前的笔记本电脑可用的cpu组件)主要是因为vs与许多其他应用程序不太完美(或接近完美)并行化.- 再次感谢 (3认同)
  • 我认为在VS 2010中它是一个非常接近的运行,它肯定比以前更具线程性.如果你正确设置了ms build,它将并行构建项目.大多数人在他们的解决方案中有几个项目以某种方式相互依赖.将其与运行操作系统,电子邮件客户端,Web浏览器的事实相结合......可能一直有4个内核对我有意义.不要认为一个程序的多个线程会考虑多个应用程序. (2认同)

Dan*_*son 6

忘了CPU.您可以为您的机器提供的最大性能提升是固态硬盘.像Resharper和Intellisense这样的编译和后台进程非常密集,以至于visual studio的主要瓶颈就是IO.我从来没有见过VS最大化CPU,无论我现在有没有单核,双四核或8核.

更新 感谢您的评论@Erx ...我不是关于正在进行的确切流程的专家.但是,如果您考虑编译器编译项目所需的读取次数,那么IO命中就不会感到惊讶.Visual Studio可能会将文件保存在内存中,但是您是否注意到在构建项目并且未保存更改时,文件会在构建开始之前保存?这告诉我msbuild编译器正在访问保存的文件,并且它不使用内存中的文件.如果您已在VS中关闭文件,则无法保证文件仍在内存中,因为它可能已被VS的内存管理清理.因此编译器获得干净的副本是有道理的.这可以是数百或数千个文件.然后是编译输出的编写,NuGet包读取,ConfigGen脚本(http://configgen.codeplex.com/).你得到了照片.

另外,我已经阅读过Intellisense对文件系统进行大量读写操作的地方,如果你的硬盘速度很慢,这将会对性能产生额外的影响.

Resharper等插件也可以访问文件系统,尤其是后台编译.我永远不会主张删除Resharper,因为它是最好的生产力工具.所以我要重申一下,如果你在一个拥有最新可用内核数量和大量RAM的花哨新系统上大肆渲染,那么在新SSD上花费几百美元/ 100英镑.你不会后悔的.

此外,检查一下Scott Guthrie的沼泽对此事http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx 具体,我引用:"......在必要时,购买额外的CPU处理器速度,而不是投资更快的磁盘".如果有人知道你会期望Visual Studio开发团队的负责人知道.

  • 我说的是真的,特别是最大的性能提升将是一个更快的硬盘.这并不是说更快的CPU根本无济于事.当然会的.但就你的降压而言,请选择SSD.而且,你不是喜欢比较.尝试比较两台机器中相同硬盘的速度.然后在两台机器中使用相同的SSD.然后做你的计算.你会发现在两个测试中,SSD的性能会更好 (2认同)