删除不必要的命名空间(使用)指令是不是有性能提升?

Posted

技术标签:

【中文标题】删除不必要的命名空间(使用)指令是不是有性能提升?【英文标题】:Is there a performance gain in removing unnecessary namespace (using) directives?删除不必要的命名空间(使用)指令是否有性能提升? 【发布时间】:2011-11-05 06:42:51 【问题描述】:

在我的类中有多少使用编译器指令是否重要?删除那些不必要的是否有性能提升?

虽然我喜欢编写流线型代码,但有时代码段会被修改,并且没有机会回去检查所有包含的命名空间是否真的有必要。或者,我不会返回并删除那些由 Visual Studio 自动插入的内容。

即:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

谢谢!

【问题讨论】:

在 VS 中编译代码时,性能提升很小(可能无法衡量)。当程序员查看该代码时,可能会有一些小的“性能提升”。 为了你自己在提到的那些时间里的表现和更容易维护的名义,在VS编辑器中右键单击,然后组织使用->删除和排序。 有很多 Visual Studio 插件可以利用您的担忧。包括 VS 顺便说一句,不太确定上下文菜单项“组织使用”在哪个版本可用。 VS2010 有。看到编译代码的实际性能改进是总有一天有人需要报告的。打开另一个文件需要 50 毫秒,这个数字在 Windows 中已经存在很长时间了。当程序集实际上没有被使用时,编译器足够聪明,可以从生成的 IL 代码中删除 .assembly 指令。 Why should you remove unnecessary C# using directives?的可能重复 【参考方案1】:

不,没有性能优势。

编译器不会为using 语句生成 IL(可执行代码)。 IL 仅针对那些利用您提供的using 语句的类、方法调用等生成。

因此,未使用的using 语句可能产生的唯一影响是略微增加您的构建时间,或者在您想知道它们为什么存在之后让下一个开发人员。

【讨论】:

以上是关于删除不必要的命名空间(使用)指令是不是有性能提升?的主要内容,如果未能解决你的问题,请参考以下文章

vs2008中的错误 1 找不到类型或命名空间名称“Graphics”(是不是缺少 using 指令或程序集引用?)怎么解决?急

C#错误:未能找到类型或命名空间名称“MessageBoxResult”(是不是缺少 using 指令或程序集引用?)怎么办??

C# 关键字--using

C# 未能找到类型或命名空间名称“Form1”(是不是缺少 using 指令或程序集引用?)

C# 未能找到类型或命名空间名称 "MyRectangle"(是不是缺少 using 指令或程序集引

C#提示未能找到类型或命名空间名称”Renderer“(是不是缺少 using 指令或程序集引用)怎么解决?