[英]Performance impact of unused “using” directives in C#
只是好奇它。
如果我在代码文件的开头添加多个using
指令,我在代码中没有使用它是否重要。 像这样。
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;
//using blah.. blah.. blah..;
public class myClass
{
// Class members
}
它对我的应用程序的内存使用有不良影响吗?
它对我的应用程序的性能有不良影响吗?
我知道删除它们是一个很好的做法,我们完全支持.Net IDE这样做,但我很想知道它。
Extra Using
指令不会对最终应用程序产生任何内存/性能影响 - 它们只是编译器提供的快捷方式来处理长类型名称。 编译器使用这些命名空间来解析不合格(或部分限定)的类型名称以更正类型。
为了完整起见,IL为此生成:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hello World!");
}
}
}
还有这个:
class Program
{
static void Main(string[] args)
{
System.Console.Write("Hello World!");
}
}
完全一样:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 13 (0xd)
.maxstack 8
IL_0000: nop
IL_0001: ldstr "Hello World!"
IL_0006: call void [mscorlib]System.Console::Write(string)
IL_000b: nop
IL_000c: ret
} // end of method Program::Main
您的应用程序没有性能命中。 这只是您用来避免输入整个资格的捷径。 例如
var f = new File()
代替
var f= new System.IO.File();
然而。 它会影响开发环境(IDE)的性能,因为您使用的语句越多,自动完成缓存就越大。 这使查找时间略微变慢。 但这通常难以察觉。
但是,此建议不适用于向项目添加程序集引用。 如果您添加对MyGloriousLibrary.DLL的引用并且从不使用它,那么您将度过一个糟糕的时光。
它根本不会影响应用程序的整体性能或内存使用情况。 using指令在编译时就在那里,因此您不必每次都写出完整的类名。 编译代码后,这些指令没有任何内容(编译后的代码总是使用完整的类型名称)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.