因爲我正在開發我的第一款遊戲引擎,所以這些日子我都是關於性能的。我不是C++專家,但經過一些研究後,我發現了緩存和內存對齊的重要性。使用數組來獲得最佳內存對齊和緩存使用,是否有必要?
基本上我發現的是,建議有內存以及專門對準如果你需要一起訪問它們,例如在一個循環。現在
,在我的項目,我做我的遊戲對象管理器,我想擁有的GameObjects引用數組。這意味着我會一個接一個地記住我的對象。
static const size_t MaxNumberGameObjects = 20;
GameObject mGameObjects[MaxNumberGameObjects];
但是,正如我將實施一個基於組件的設計,其中游戲對象將組件(網格,剛體,轉型等)的名單,我是否會獲得一些與數組呢?
反正,我看到有些人只使用一個簡單的std ::地圖存儲遊戲對象。那麼你們覺得呢?
我是最好使用純組件模型?
你最好的東西的設計,很容易使用,易於擴展和易於維護。表現是你最後的擔憂。當然,記住好算法並且不要浪費,但是在扭曲它來試圖獲得性能之前,讓你的設計運行起來。另外,如果你想用查找來存儲名稱,而'std :: map'是這個標準的解決方案,'unordered_map'應該更好。 (你不需要排序,但它更適合,不僅如此,我做過的測試表明,儘管插入速度較慢,但查找起來速度更快。)Boost擁有它。 – GManNickG 2010-05-22 19:41:24
unordered_map的東西是一件很好的事情要知道,謝謝,我一直使用地圖... – 2010-05-22 20:00:25