首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Effective C# 原則 31:選擇小而簡單的函式 (上)

     編輯:關於C語言

手動優化可能適得其反

經驗豐富的程式設計師常嘗試手動優化,例如合併函式以減少呼叫開銷,但在 .NET 中這往往阻礙 JIT 編譯器發揮最佳效能。最佳策略是用最清晰的方式撰寫程式碼,其餘交給 JIT。

JIT 編譯器的運作方式

.NET 執行階段逐函式呼叫 JIT 編譯器,將 IL 轉換為機器碼。啟動時不編譯整個程式,從未呼叫的函式永不編譯。將程式碼拆分為更多小函式,可最小化無關程式碼的編譯開銷。

範例:大型函式 vs. 小函式

單一大型函式 BuildMsg 包含 if/else 兩條路徑,首次呼叫時兩條皆被編譯:

public string BuildMsg(bool takeFirstPath)
{
    StringBuilder msg = new StringBuilder();
    if (takeFirstPath) { ... }
    else { ... }
    return msg.ToString();
}

拆分為小函式後,JIT 僅編譯實際執行的路徑:

public string BuildMsg(bool takeFirstPath)
{
    if (takeFirstPath) return FirstPath();
    else return SecondPath();
}

這樣避免了編譯永不執行的分支,提升啟動效能與記憶體使用效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved