.NET 效能秘訣
「效能」這個詞一般指的是程式的執行速度。 您有時可以遵循原始程式碼中的特定基本規則來增加執行速度。 在某些程式中,請務必仔細檢查程式碼,並使用程式碼剖析工具,確定以最快速度執行。 在其他程式中,您不需要執行這類最佳化,因為程式碼會以撰寫時的可接受速度快速執行。 本文列出效能可能會降低的一些常見區域和其改善祕訣,以及其他效能主題的連結。 如需效能規劃和測量的詳細資訊,請參閱效能。
Boxing 和 Unboxing
如果必須對實值型別進行 Boxing 處理多次,則最好避免使用實值型別,例如,在 System.Collections.ArrayList 這類非泛型集合類別中。 您可以使用 System.Collections.Generic.List<T> 這類泛型集合,避免對實值型別進行 Boxing 處理。 Boxing 和 Unboxing 是會耗費大量運算資源的處理序。 對實值型別進行 Boxing 處理時,必須建立全新的物件。 這所需的時間最多是簡單參考指派的 20 倍。 Unboxing 處理時,轉換處理序可能需要指派的四倍時間。 如需詳細資訊,請參閱 Boxing 和 Unboxing。
字串
當您串連大量字串變數時 (例如在緊密迴圈中),請使用 System.Text.StringBuilder,而非 C# + 運算子或 Visual Basic 串連運算子。 如需詳細資訊,請參閱如何串連多個字串和 Visual Basic 中的串連運算子。
完成項
不應該使用空的完成項。 類別包含完成項時,會在完成佇列中建立一個項目。 呼叫完成項時,會叫用記憶體回收行程來處理佇列。 如果完成項是空的,則這只會導致效能降低。 如需詳細資訊,請參閱完成項和物件存留期:物件的建立和終結方式。
其他資源
Writing Faster Managed Code: Know What Things Cost (撰寫更快的 Managed 程式碼:知道事項的成本)
Writing High-Performance Managed Applications: A Primer (撰寫高效能 Managed 應用程式:入門)
Garbage Collector Basics and Performance Hints (記憶體回收行程基本概念和效能提示)
Performance Tips and Tricks in .NET Applications (.NET 應用程式中的效能祕訣和訣竅)
Rico Mariani's Performance Tidbits (Rico Mariani 的效能花絮)