GameEngineArchitecture讀書筆記(三)

來源:互聯網
上載者:User
  • 記憶體管理

    • C++預設的new效率比較低
    • 如果演算法都一樣的話, 好的記憶體管理原則還可以提升一部分效能
    • 可以通過預分配來減少動態分配的次數(memory pool)
    • SIMD數學庫有記憶體對齊的需求(XNAMath)
    • Cache Miss
      • CPU訪問RAM比較慢, 所以中間有個比較快的Cache
      • CPU訪問資料時會從RAM拷貝一段到Cache, 如果Cache中正好有, 那麼就會比較快的響應; 如果沒有, 就要重新載入另一段到Cache
      • Cache Miss沒法避免, 但是可以在程式策略上減少發生的次數
      • 減少Data Cache Miss的方法
        • 盡量把你的資料群組織在一個連續的記憶體中
        • 每份盡量小(可以使用位網域作業)
      • 減少Instruction Cache Miss的方法
        • 效能相關的程式碼片段盡量不要調用函數
        • 如果非要調用函數, 請放把函數在同一個CPP裡
        • 使用inline函數
    • 如果懶得自己做, 可以使用tbb的或nedmalloc
  • 資源和檔案系統
    • 檔案系統

      • 建議都使用"/"路徑分隔字元, 並且提供路徑的處理工具函數類
      • 非同步IO應該在這一層提供支援
    • 資源管理
      • 版本控制最好整合到管理工具中
      • 可以建立一個資源資料庫, 方便檢索
      • 資源"編譯器", 資源的格式轉換與最佳化可以放在這一步來做
      • 檔案打包可以減少磁碟的seek time
      • 資源資料壓縮可以在檔案包這一層做
      • 可以使用序列化來減少檔案格式的混亂, 不過C++天生缺少這一特性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.