命名空间的数量会影响性能吗?

时间:2010-12-07 16:26:07

标签: c# asp.net performance

在Visual Studio中,有一个命令可以删除未使用的using语句

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

使用未使用的用户是否有性能损失?

6 个答案:

答案 0 :(得分:7)

代码文件中使用的命名空间数量不会影响应用程序的运行时性能。它确实会对编译时产生影响,因为编译器必须在这些命名空间中搜索其他项,例如类型和扩展方法。

唯一的运行时影响我知道的名称空间数

  • 调试:给定代码文件中使用的命名空间集存储在PDB中,并在名称解析期间由调试器查阅。从理论上讲,拥有大量命名空间会影响调试器的性能,但实际上我还没有看到这是一个问题。
  • Asp.Net:如果使用部署模型,用户在第一个视图上编译页面,则命名空间的数量会影响第一次查看给定页面时的加载时间

答案 1 :(得分:4)

它只影响编译器需要迭代命名空间以查找引用类型时的编译时间。 (无论如何,它还是很多。)它根本不会影响运行时性能。

答案 2 :(得分:4)

没有。命名空间用于在编译时解析类名。编译后,程序集只包含完全限定的类名,如System.Collections.Generic.List<int> myList = new System.Collections.Generic.List<int>(),所有使用都消失了。

答案 3 :(得分:1)

我一直以为它们被编译器删除了。

答案 4 :(得分:1)

未使用的using语句没有性能损失。他们只需要在编译时进行评估。

答案 5 :(得分:0)

我确信在某个地方(可能在编译期间)有性能损失,但它可能可以忽略不计。无论哪种方式,我建议运行该命令 - 它将消除潜在的性能损失并使您的代码更易于阅读和维护。并且它将从intellisense中删除未使用的名称,使其更容易编码:)