1、為什么使用內存池?
通常我們習慣直接使用new、malloc等API申請分配內存,這樣做的缺點在于:由于所申請內存塊的大小不定,當頻繁使用時會造成大量的內存碎片并進而降低性能。
2、如何使用內存池。
內存池(Memory Pool)是一種內存分配方式。 內存池則是在真正使用內存之前,先申請分配一定數量的、大小相等(一般情況下)的內存塊留作備用。當有新的內存需求時,就從內存池中分出一部分內存塊,若內存塊不夠再繼續申請新的內存。這樣做的一個顯著優點是盡量避免了內存碎片,使得內存分配效率得到提升。
3、內存池管理。
最簡單的內存池應該是fix_pool吧,即每次分配出來的內存塊大小是固定的。這種池子的管理結構是一個
鏈表,鏈表的每一個節點為固定大小的內存塊。分配的時候,直接返回鏈表的第一個節點,節點不足時,從系統申請大塊內存分成多個節點加入鏈表;釋放的時候更簡單,將釋放的內存加入鏈表頭。
posted on 2011-10-11 08:45
Yu_ 閱讀(429)
評論(0) 編輯 收藏 引用 所屬分類:
Windows程序設計