.NET 性能提示

 

术语“性能”通常指程序的执行速度。  有时候,通过遵循源代码中的一些基本规则便可以提高执行速度。  在某些程序中,仔细检查代码并使用探查器确保程序可以尽可能快地运行非常重要。  在另一些程序中,由于在编写时代码运行得足够快,因此不必进行此类优化。  本文列出了性能可能受损的常见区域,并提供了改进方法以及其他性能主题的链接。  有关性能的计划和衡量的详细信息,请参阅 .NET Framework Performance  

装箱和取消装箱

如果必须频繁地将值类型装箱,则最好避免使用值类型,例如在非泛型集合类(如 System.Collections.ArrayList)中。  可以通过使用泛型集合(例如 System.Collections.Generic.List<T>)来避免将值类型装箱。  装箱和取消装箱都是需要大量运算的过程。  对值类型进行装箱时,必须创建一个全新的对象。  此操作所需时间可比简单的引用赋值操作长 20 倍。  取消装箱时,强制转换过程所需时间可达赋值操作的四倍。  有关更多信息,请参见装箱和取消装箱。  

Strings

在连接大量字符串变量时,例如在紧凑循环中,请使用 System.Text.StringBuilder 而不是 C# + 运算符或 Visual Basic 串联运算符。  有关更多信息,请参见如何:串联多个字符串(C# 编程指南)串联运算符 (Visual Basic)。  

析构函数

不应使用空析构函数。  如果类包含析构函数,Finalize 队列中则会创建一个项。  调用析构函数时,将调用垃圾回收器来处理该队列。  如果析构函数为空,只会导致性能降低。  有关更多信息,请参见析构函数(C# 编程指南)对象生存期:如何创建和销毁对象 (Visual Basic)。  

其他资源

另请参阅

.NET Framework Performance
编程概念
Visual Basic 编程指南
C# 编程指南