【问题标题】:Why is Visual Studio 2005 so slow?为什么 Visual Studio 2005 这么慢?
【发布时间】:2010-09-07 19:06:20
【问题描述】:

加载除小项目以外的任何内容都很慢。戒烟很慢;有时可能需要几分钟。打开新文件可能会很慢。录制宏功能曾经很有用。现在启动太慢了,手动启动几乎总是更快!


更多信息会有所帮助。你的解决方案有多大?你在什么平台上。您正在运行哪些 3rd 方插件?你的电脑上还有什么正在运行?

3.2GHz P4 超线程,2GB RAM。运行 Outlook、Perforce、IE7、目录浏览器。通常有 1-3 个 VS 实例在运行。比 VC6 慢得多。加载项目并关闭似乎需要很长时间。我对人们是否知道发生这种情况的原因很感兴趣,因为 VS 的编写方式。它是在内部使用 .net 并且 GC 会减慢它的速度吗?

【问题讨论】:

    标签: visual-studio visual-c++ visual-studio-2005


    【解决方案1】:

    Visual Studio 2005 运行缓慢的最大罪魁祸首之一是 Intellisense。这在 MSDN 论坛上一次又一次地被提出。我经常遇到的是 Intellisense 几乎不间断地“重新索引”符号(或任何你称之为的)。但微软的开发人员并没有对这些抱怨置若罔闻,一些外向的人提出了一些解决方法,这些解决方法对我有帮助,也可能对你有所帮助:

    查看此链接以更好地了解 Intellisense:

    Intellisense Info

    然后查看此链接,了解一些我已经取得了很大成功的宏:

    Intellisense Macros

    使用这些宏,您可以关闭智能感知(无需重命名任何 DLL)、重新启动它、删除 ncb 文件(您可以手动执行此操作,但这是一种方便),它可以为您提供智能感知的状态。

    【讨论】:

      【解决方案2】:

      可能是您有一个行为不端的插件。试试safemode 开关,看看这是否能提高性能

      【讨论】:

        【解决方案3】:

        Visual Studio 2005 运行缓慢的最大罪魁祸首之一是 Intellisense。这在 MSDN 论坛上一次又一次地被提出。我经常遇到的是 Intellisense 几乎不间断地“重新索引”符号 [...]

        我同意。我使用视觉辅助。它好多了。也没有真正的方法可以关闭“智能感知”。我发现的唯一方法是重命名 DLL,所以当你重新启动 VS 时找不到它。这样可以使 VS 更快。

        【讨论】:

        • 我同意这一点。我也一样。 DLL 是 \VC\vcpackages\feacp.dll
        【解决方案4】:

        我倾向于同意 VS 是重量级的。回到过去,我使用 Boxer 文本编辑器和 makefile 在 DOS 中进行编码。 Boxer 没有强大的智能感知和重构功能,但它在文本编辑部门做得更好,有很好的语法突出显示和即时启动/关闭,即使在 486 上也是如此。...那些日子。

        我会说自定义 VS 以消除您无论如何都不会使用的所有开销会非常好,但我认为不会发生这种情况。

        【讨论】:

          【解决方案5】:

          这是你的问题:

          3.2GHz P4 超线程,2GB RAM

          Hypertheaded 的意思是“实际上没有两个 CPU,但它是伪造的”。如果你有一个只运行一个线程的进程,那么你的性能就会很差。这是一个很好的短期措施,但与拥有两个 REAL CPU 相比,这是一个缓慢的 hack。

          我认为这根本不是问题。该机器具有足够高的规格,足以成为大型项目的专业 C++ 开发机器。我可以运行 Eclipse(它是 Java,它需要大量内存并且比本机代码慢),这仍然比 VS 2005 快。

          我将 RAM 量从 1GB 增加到 2GB。这对链接大型应用程序有很大帮助。我们还使用 Incredibuild 来加速编译。但速度慢的是 VS 应用。

          如果你认为我是一个脾气暴躁的反 MS 狂热者,问问你自己为什么人们不购买 Vista! :)

          【讨论】:

            【解决方案6】:

            我看到速度更快的机器结果好坏参半。当然,速度更快的机器隐藏了 vs2005 较差的性能质量,但不是全部。

            只需使用你的强制性“hello world”C/C++ 程序,只需编译它,(CL /c helloword.cpp),

            #include <stdio.h>
            #include <windows.h>
            
            int main(char argc, char *argv[])
            {
               printf("Hello World\n");
               return 0;
            }
            

            我看到 Vc6 下 1 秒编译器和 VS2005 下 6 秒编译器。

            使用 DEPENDS 来分析这两者,我看到 3 个区域发生 5 秒延迟和时间不同:

              ~2.5 secs with ADVAPI32.DLL, CryptGetHashParam()
              ~1.5 secs with OLE2.DLL, StringFromGUID2()
              ~1.0 secs with C2.DLL, _AbortCompilerPass()  
            

            同样,这只是一个编译,而不是一个链接。 VC8+ 编译器可执行文件/dll 出于某种透明原因引用了加密 API、注册表等子系统,这为直接和纯编译增加了大量开销。

            虽然更快的机器可能会隐藏一些隐藏速度变慢,但人们只能想知道微软是否可以通过提供禁用不必要的开销引用的选项来优化编译器。我知道更好的编译器会带来一些开销,但我看到的是 300-500% 的编译时间降级 - 这太糟糕了。

            赫克托·桑托斯,首席技术官 Santronics 软件

            【讨论】:

              【解决方案7】:

              恐怕这纯粹是主观的事情。

              • 可能是因为您的系统配置低。
              • 可能是 VS 试图从网上获取更新?
              • 可能是您在后台运行了太多应用程序。
              • 可能是您试图打开一个巨大的解决方案。

              【讨论】:

              • 我不同意。将 vs2003 与 vs2005 并排安装 - vs2003 打开相同的源代码要快得多。只需在源文件中滚动就快了很多。
              【解决方案8】:

              最近我的机器上同时安装了 Visual Studio 2008 和 Visual Studio 2005,我同意 VS2005 真的很重。他们在 VS2008 中对其进行了改进,尽管我不确定您是否会充分考虑性能改进。

              【讨论】:

              • VS2008 确实有一些性能提升,但切换的更大原因是更新的语言(不需要脱离 Framework 2.0)。
              【解决方案9】:

              您能否为一些操作计时并发布它们,以便我们了解您所说的“慢”是什么意思?在我的机器上,我不会说 VS 2005 很慢,但是如果你将它与记事本或我的网络浏览器进行比较,它似乎很慢。以下是一些可以帮助人们弄清楚发生了什么的事情:

              • 关闭所有可能影响加载时间的功能。这包括卸载所有插件并确保 VS 未配置为自动打开项目。
              • 重启你的机器。
              • VS 2005 启动的时间,从您单击图标到程序启动的时间。
              • 创建一个您愿意在此处发布的程序,该程序似乎编译缓慢(这可能无法实现,具体取决于进行缓慢编译所需的内容);发布程序以及您的计算机构建它需要多长时间。
              • 你知道有没有其他人安装了 VS 2005 的同类型机器?它看起来比你的慢还是快?

              我相信开尔文勋爵在这种情况下所说的最好的话:

              当你能衡量你在说什么,并用数字来表达它,你就会知道一些事情;但是当你不能测量它,当你不能用数字来表达它时,你对它的了解是微不足道的和不能令人满意的;它可能是知识的开端,但在你的思想中,它几乎没有发展到科学阶段。

              在您向我们提供一些测量结果以供查看之前,我们无法告诉您您的机器是否真的很慢,或者您对机器的期望是否超出了它所能提供的范围。您的 HT CPU 可能是问题所在;我在工作和家里的机器大致相当,但是在运行 VS 时,我的双核工作机器围绕着我的单核家用机器运行。

              【讨论】:

                【解决方案10】:

                VS 2005 比 VS 6 慢,因为它对速度的优化不够好。 VS 6 的开发人员的机器比 VS 2005 的开发人员要慢。当时他们让它“足够”快。在现代机器上,VS 现在“快得令人愉快”,而 VS 2005 的速度刚刚好。

                让我恼火的是他们决定放弃 VS 6 并重新开始 VS 2005,当时 VS 6 是一款非常棒的软件,只需要更新。

                【讨论】:

                  【解决方案11】:

                  我注意到你在上面提到你也在使用 perforcet。项目在不使用 perforce 时加载是否更快,我敢打赌,您看到的一些延迟与加载期间的 perforce 有关。最新版本的 perforce 似乎也慢了很多。

                  【讨论】:

                  • 这是一个公平的观点。我认为这是部分原因,但即使你没有源代码控制绑定,而且很多项目与其他包相比似乎仍然非常慢,例如Xcode。
                  • 当我迁移到 2009.2 客户端时,它也变慢了很多。显然,他们从来没有在一个包含多个项目的解决方案上测试他们的源代码控制集成。在顶部添加重新锐化器,这可能会令人沮丧。我发现最好的解决方案是起床,启动 VS,吃早餐,喝杯咖啡,然后再开始编码......然后希望 VS 在白天不会崩溃或开始告诉我我无法复制/粘贴; )
                  【解决方案12】:

                  在 Visual Studio 顶部提供的“任何 CPU”选项上更改您的解决方案平台,那么您的程序构建速度肯定会提高。

                  【讨论】:

                    【解决方案13】:

                    这是你的问题:

                    3.2GHz P4 超线程,2GB RAM

                    Hypertheaded 的意思是“实际上没有两个 CPU,但它是伪造的”。如果你有一个只运行一个线程的进程,那么你的性能就会很差。这是一个很好的短期措施,但与拥有两个 REAL CPU 相比,这是一个缓慢的 hack。

                    根据您所说的运行情况,2GB 的 RAM 也是一个问题。如果你有一个基本的 5400RPM 磁盘,那么它会让一切变得更糟。

                    根据您发布的内容,我会推荐:

                    • 一台不错的 core2 机器,如果您有预算,可能是四台机器。
                    • 如果您运行的是 32 位操作系统,则为 3GB 内存,如果您运行的是 x64,则为 4+GB。 4GB 意味着您在 32 位下浪费了 1GB。
                    • 获取 7200RPM 或更高的磁盘。如果可以,RAID0 它们(条带)或 RAID0+1(条带+镜像)如果您可以获得 4 个驱动器(条带 == 在两个磁盘上拆分内容,因此您可以同时从两个磁盘读取。条带 + 镜像 = = 条带化的安全版本,因此您的代码始终位于两个磁盘上)

                    我有一个 2GB 的 2.0ghz Core2(大约是 P4 性能的 3-4 倍,如果将 2 个 CPU(核心)计算为 2 倍),2GB,我最多可以运行 2 个 VS.NET 实例2008. 这很正常 - VS.NET 没有问题,它只是一个巨大的应用程序。

                    更多内存。更多 CPU。更多屏幕。更多的。更多的。更多:)

                    【讨论】:

                    • 他在同一台机器上比较 VS 2005 和 VS 6。速度与为什么 VS 2005 比 VS 6 慢无关。
                    猜你喜欢
                    • 2023-03-21
                    • 1970-01-01
                    • 2011-05-14
                    • 2013-11-06
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-09-03
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多