.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)。