未使用的 using 指令如何影响性能?

无论何时创建新页或项目,VisualStudio 都会自动为您创建 using 语句。有些是你永远用不到的。

VisualStudio 具有“删除未使用的用途”的有用特性。

我想知道如果在文件的顶部仍然提到从未访问过的 using 语句,是否会对程序性能产生负面影响。

27644 次浏览

不,它只是一个编译时/编码风格的. NET 二进制文件在底层使用完全限定名。

未使用的使用对应用程序的运行时性能没有影响。

它会影响 IDE 的性能和整个编译阶段。原因是它创建了一个额外的名称空间,必须在其中进行名称解析。然而,这些问题往往是微不足道的,对于大多数场景来说,不应该对您的 IDE 体验产生明显的影响。

由于相同的原因,它还可能影响在调试器中计算表达式的性能。

对执行速度没有影响,但是对编译速度/智能感知可能有一些轻微的影响,因为有更多潜在的名称空间可以搜索合适的类。我不会太担心它,但你可以使用组织用法菜单项来删除和排序使用语句。

不,编译一个程序需要几个过程。当编译器开始查找引用(类、方法)时,它将只使用代码中使用的引用。Using 指令只告诉编译器查找的位置。许多未使用的 using 语句可能会在编译时出现性能问题。在运行时,所有外部代码都被正确链接或包含为二进制文件的一部分。

不执行的代码不会影响程序的性能。

下面的链接 关于为什么要删除未使用的引用的一本好书解释了如何从应用程序中删除未使用的引用。

以下是这个链接的一些摘录:

  1. 通过删除应用程序中任何未使用的引用,您可以 阻止 CLR加载未使用的引用模块 这意味着您将减少您的 应用程序,因为它需要时间来加载每个模块,并避免 让编译器加载永远不会使用的元数据 发现根据每个库的大小,您的启动时间 明显减少。这并不是说你的申请 一旦加载,它可以更快,但它可以非常方便地知道你的 启动时间可能会减少

  2. 删除任何未使用的引用的另一个好处是,您将 降低与名称空间冲突的风险 引用了 System.DrawingSystem.Web.UI.WebControls, 您可能会发现,在尝试引用 如果您的类中有匹配的使用指令 对于这些引用,编译器无法分辨使用哪些引用。 如果在开发时经常使用自动完成,则删除未使用的 命名空间将减少您的 文本编辑器。