.NET 性能提示
术语“性能”通常指程序的执行速度。 有时通过遵循源代码中的一些基本规则便可以提高执行速度。 在某些程序中,十分重要的一点是需要仔细检查代码并使用探查器确保程序尽可能快地运行。 而在其他程序中,由于代码在编写时便运行得足够快,因此不必执行此类优化。 本文列出了一些性能可能遭受影响的常见领域以及相关改进建议,并提供其他性能主题的链接。 有关规划和测量性能的详细信息,请参阅性能
装箱和取消装箱
如果值类型必须被频繁装箱,那么在这些情况下最好避免使用值类型(例如在诸如 System.Collections.ArrayList 的非泛型集合类中)。 可通过使用泛型集合(例如 System.Collections.Generic.List<T>)来避免装箱值类型。 装箱和取消装箱过程需要进行大量的计算。 对值类型进行装箱时,必须创建一个全新的对象。 这可能比简单的引用赋值用时最多长 20 倍。 取消装箱的过程所需时间可达赋值操作的四倍。 有关详细信息,请参阅装箱和取消装箱。
字符串
在连接大量字符串变量时,例如在紧凑循环中,请使用 System.Text.StringBuilder 而不是 C# + 运算符或 Visual Basic 串联运算符。 有关详细信息,请参阅如何连接多个字符串和 Visual Basic 中的串联运算符。
终结器
不应使用空终结器。 如果类包含终结器,会在 Finalize 队列中创建一个条目。 调用终结器时,会调用垃圾回收器来处理该队列。 如果终结器为空,只会导致性能损失。 有关详细信息,请参阅终结器和对象生存期:如何创建和销毁对象。