實驗和進行工作的C ++ 14多線程編譯時實體 - 組件系統僅庫庫。
成功開發複雜的實時應用程序和遊戲需要靈活,高效的實體管理系統。隨著項目變得更加複雜,至關重要的是找到一種優雅的構成對象的方法,以防止代碼重複,改善模塊化並打開強大的優化可能性。
實體 - 組件系統架構模式旨在通過將數據與邏輯分開,以實現上述優勢。
實體可以由小型,可重複使用和通用組件組成。
組件可以存儲在連續的存儲區域中,從而改善數據位置和緩存友好性。
應用邏輯可以輕鬆並行化並從對象本身及其存儲策略中抽象。
該應用程序的狀態可以在網絡上序列化和共享,並以更少的精力進行。
更模塊化,通用和易於測試的代碼庫。
“ ECST”是我的BCS畢業項目開發的。
建立說明
代碼樣本
執照
伴隨論文
幻燈片
實體:由亞當·馬丁(Adam Martin)定義為系統的“基本概念構建塊”,該系統代表具體應用程序對象。他們沒有特定應用程序的數據或邏輯。
組件:小型,可重複使用的類型組成實體。同樣,援引亞當·馬丁(Adam Martin )(參見論文)的援引組件類型“將實體標記為擁有特定方面”。組件存儲數據,但不包含任何邏輯。
系統:具有特定組件類型的實體實施邏輯提供者。
外部並行性: ECST中使用的術語,該術語定義了運行多個不依賴對方並聯的多個系統的概念。其實施細節將在第10章中進行分析(請參閱論文) 。從概念上講,由於系統依賴性的了解,在編譯時創建了隱式定向的無環圖。隱式DAG的執行由設置定義期間指定的系統調度程序類型處理。
內部並行性:其他在同時運行單獨的系統的,ECST支持將單個系統拆分為多個子任務,這些系統可以在單獨的線程上執行。許多系統,例如代表功能純粹的組合的系統,不包含修改其自己狀態或定義訂閱實體之間相互作用的副作用:這些是“令人尷尬的並行”計算的主要示例。
“我在哪裡可以找到API的文檔?”
“我們可以有默認構造的組件嗎?”
“我正在嘗試從組件中讀/寫入/寫信,但是我遇到了彙編錯誤。發生了什麼? ”
“在不在系統過程功能的情況下,是否可以迭代附帶的組件?”
“如何控制我的系統是並行運行還是單個線程? ”
“使我的系統單線讀取與禁用內部副詞有什麼區別?”