遊戲引擎 資源管理 記憶體池設計(1)

2021-06-17 18:18:44 字數 1386 閱讀 9024

資源管理包括兩個部分

《記憶體管理》:資源的記憶體分配

《日誌管理》:資源的資訊,記憶體資訊都將被記錄在日誌中

《資源管理》:統一資源

很簡單的記憶體池設計

#ifndef cmemorypool_h_h_

#define cmemorypool_h_h_

#define null 0

templateclass cmemorypool; //管理

templateclass cmemoryblock; //小塊

/* 使用方式:

分配記憶體

object* pobject;

cmemorypoolcmp;

cmp.alloctate( &pobject );

釋放記憶體

cmp.free( &pobject );

注意object的建構函式要自己呼叫.

我並未在其中呼叫建構函式

當上面的分配記憶體完成後

pobject->object(type...);

*/template< class t >

class cmemorypool;

//分配

void allocate( t** _pobject )

else

_pmemblock->setid(m_uicounter);

++m_uicounter;

} //釋放

void free( t** _pobject )

_pmemblock = _pmemblock->m_nextmemblock;

} }//

private:

cmemoryblock* m_phead;

size_t m_uicounter; //計數id

};template< class t >

class cmemoryblock

~cmemoryblock()

bool getvaild( )const

size_t getid( ) const

private:

void setvaild( bool _vaild )

void setid( size_t _id )

private:

size_t m_ulid; //儲存id

unsigned char* m_pobjectmemory; //保持記憶體位址

size_t m_ulobjectsize; //儲存物件的大小

bool m_bvaild; //是否被使用

//鍊錶

cmemoryblock* m_nextmemblock; //指向下乙個物件

};#endif

unity資源管理 記憶體池

記憶體池思想 建立物件時,先檢查記憶體池中是否有快取物件,如果沒有再建立新的。刪除物件時,不立即銷毀,快取一段時間,避免重複建立,提公升執行效率,用空間換時間的做法。常用怪 npc 技能特效 血條等。基本功能 儲存,獲取,智慧型刪除。實現方式 基本物件 public class poolitem p...

關於研發資源管理設計

需求背景 研發資源管理主要為研發人員的管理。該研發部門承接專案的,以及零散的運維需求。資源分內部資源與外部資源,即外包駐場開發。該企業為重流程審批企業,外包人員的結算需要有結算依據。基於這樣的背景,為研發部門設計研發資源管理模組的功能。1.梳理涉及專案管理的專業知識與術語 資源日曆 是確定每種資源的...

遊戲中的資源管理 資源快取記憶體

1.什麼是資源快取記憶體 資源快取記憶體的原理與其它記憶體快取記憶體的工作原理是相似的。在遊戲的狀態轉換過程中,有些資料是剛才使用過的,那麼直接從資源快取記憶體中載入即可。例如,rpg 遊戲中主角從大地圖進入乙個房間,探索一番後主角退出房間,此時只要直接從快取中載入大地圖資料即可,節省了從硬碟載入資...