[轉錄]7 Ways To Optimize C# Code
前言
剛好看到Jeff大大這篇比較效率的文章,順手去挖了一篇沉很久的轉錄文章出來,希望對大家都有幫助。
Jeff大的文章:不分英文字母大小寫的字串比較方式
原文參考:7 Ways To Optimize C# Code
內容都是平時寫code會發生的情況,
當每次遇到時,改寫成文中建議的方式,對整個系統每個角落的CODE都進行這樣的改寫,將提升很可觀的performance。
內容節錄跟白話解釋:
- Knowing when to use StringBuilder
- 組不變的固定字串時,建議用"@",或string,而不是用StringBuilder。
- 組動態字串時,如SQL statement、javascript、html時,則建議使用StringBuilder。
- Comparing Non-Case-Sensitive Strings
- 比較字串時,往往使用string.ToUpper()或ToLower(),但這大量使用時,會成為系統的效率瓶頸。
- 建議改使用string.Compare(str1, str2, true) == 0
- Use string.Empty
- 空字串時,往往習慣使用"",但string.Empty的寫法,效率更高,可讀性也比較高
- Replace ArrayList with List<>
- 使用泛型List<>,效率比ArrayList 好!
- Use && and || operators
- 使用&&來取代and,使用||來取代or。(在VB為AndAlso與OrElse),效率會比較好
- Smart Try-Catch
- 謹慎界定Try-Catch使用時機與範圍
- Replace Divisions
- 除法在C#的運算效率較差,若系統需要大量使用到除法,可考慮用位元shift的方式來改寫除法。
其他參考:
- Optimizing integer divisions with Multiply Shift in C#
- C# Coding Standards document
- C# Coding Standards document(翻譯成中文)
PS:
為啥我一直有印象這一篇是從哪一個前輩的blog上看到後,我幫忙節錄的…
(如果有違反到著作權,再麻煩跟我說一聲,我會補上您的原文連結或是把文章刪除,
因為這篇文章我當時只有記錄一部份內容...不過剛剛又搜尋不到任何相關記錄...)
[註]:看到最後一個連結,是從Bibby大那邊看到的?我只記得有在噗上討論過了.....
blog 與課程更新內容,請前往新站位置:http://tdd.best/