【问题标题】:What is the best way to improve ASP.NET/C# compilation speed?提高 ASP.NET/C# 编译速度的最佳方法是什么?
【发布时间】:2008-09-21 19:26:25
【问题描述】:

更新:请将您的答案集中在硬件解决方案上。

您使用哪些硬件/工具/插件来提高 ASP.NET 编译和首次执行速度?我们正在寻找固态硬盘以加快速度,但现在价格确实很高。

我现在在 RAID 0 中有两个 7200rpm 硬盘驱动器,我对性能不再满意。

所以我的主要问题是,当您进行大量调试时,目前提高 ASP.NET 编译速度和整体开发性能的最佳成本效益方法是什么?

Scott Gu 有一篇关于这方面的不错的博文,还有其他人要建议吗?

http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx

【问题讨论】:

  • 您正在编译的解决方案有多大,您当前的处理器是什么?
  • 我更关注硬件解决方案而不是软件解决方案。我们使用 Visual Studio 2008 SP1,我们的 ASP.NET 网站都是 Web 应用程序。我有 4 个带有 Vista 64 位的 RAM。我有一个 AMD X2 双核处理器 4200+。 RAID-0 中的 2x7200rpm 驱动器。我仍在寻求改进此设置。
  • 如果您要求硬件解决方案,我们可以争辩说这不是一个编程问题,并将其关闭。说真的。
  • 防病毒应用程序也会严重减慢构建速度,降低 50% 或更多。尝试切换为仅扫描 exe(扫描源文件毫无意义)。

标签: c# .net asp.net


【解决方案1】:

要做的重要事情之一是保持卸载不经常更改的程序集的项目。当发生更改时,重新加载、编译和卸载。它在大型解决方案中产生了巨大的差异。

【讨论】:

  • 这在进行大型重构(例如重命名关键类/方法)方面效果如何?您是否发现自己在签入时破坏了构建,或者只是小心的问题?
  • 出于这种目的,我保留了一个单独的解决方案,其中大部分/所有项目都已加载。编译该解决方案还可以确保所有程序集都是最新的,但就我而言,这需要将近一个小时。我看不出卸载项目如何导致破坏构建。我从来没有经历过。
【解决方案2】:

首先确保您使用的是Web Application Projects (WAP)。根据我们的经验,与网站项目相比,WAP 的编译速度大约快 10 倍。

然后,考虑将所有逻辑(包括复杂的 UI 组件)迁移到单独的库项目中。 C# 编译器比 ASP.NET 编译器快(至少对于 VS2005)。

【讨论】:

    【解决方案3】:

    如果您有许多第 3 方“引用程序集”,确保 CopyLocal=False 在除 Web 应用程序项目之外的所有项目上会产生很大的不同。

    我在博客中谈到了通过进行这个简单的更改而获得的性能提升:

    Speeding Up your Desktop Build - Part 1

    【讨论】:

      【解决方案4】:

      您可以预编译网站,这将使首次运行体验更好

      http://msdn.microsoft.com/en-us/library/ms227972.aspx

      【讨论】:

        【解决方案5】:

        我建议尽可能多地为您的 PC 添加内存。如果您的解决方案超大,您可能需要探索 64 位,以便您的机器可以处理超过 3GB 的内存。

        此外,Visual Studio 2008 SP1 似乎比以前的版本快得多,请确保您运行的是带有 Service Pack 的最新版本。

        祝你好运!

        【讨论】:

          【解决方案6】:

          如果您只关注硬件,则需要在网络上搜索基准。刚才写了几篇关于Visual Studio编译时硬件性能的文章,懒得找链接了。

          硬件解决方案可能是无穷无尽的,因为如果你有钱,你可以获得一些非常高端的设备。否则它通常会更多的内存、更快的处理器和更快的硬盘驱动器。迁移到 64 位操作系统也有帮助。

          如果您想更具体?就在我的脑海中……8GB 或更多的内存,如果你买不起固态硬盘,我会选择 10K 到 15K RPM 的硬盘。关于四核是否有任何区别存在争议,但请查看基准,看看哪些对您有用。

          【讨论】:

            【解决方案7】:

            如果您只关注硬件、多核处理器、大量内存以及理想的 10K 或 15K 硬盘驱动器。

            我个人注意到,在更改为 10K RPM 驱动器后,性能有了巨大的提升。

            【讨论】:

              【解决方案8】:

              提高 ASP.NET 编译时间的最佳方法是投入更多硬件。 OCZ Vertex Turbo SSD 驱动器和 Intel i7 960 给了我巨大的动力。你可以看到我的结果here

              【讨论】:

                【解决方案9】:

                我从网站切换到网络应用程序。编译时间至少减少了十倍。

                另外,如果可能的话,我尽量不使用调试器(“不调试就运行”)。这减少了启动 Web 应用程序所需的时间。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多