看板 C_and_CPP 關於我們 聯絡資訊
最近我剛完成下學期遊戲專案用的Memory Manager 寫了些心得來跟大家分享一下 :) Part 1 of 3: The Allocator 介紹如何實作簡單的記憶體配置器 http://bit.ly/ZBNTH9 Part 2 of 3: C-Style Interface 示範如何實作C-style的記憶體配置介面 http://bit.ly/YADtvY Part 3 of 3: STL-Compatible Allocators 解釋如何實作可以跟STL容器一起使用的記憶體配置器 http://bit.ly/13dePB5 -- Blog http://blog.cjcat.net Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 98.243.174.254 ※ 編輯: cjcat2266 來自: 98.243.174.254 (05/07 04:15)
damody:如果有大量物件的需求 用 http://ppt.cc/fRyf 這個好用! 05/07 05:04
damody:Part 3 很實用 幫助我這種記憶不好的人 可以快速改寫~ 05/07 05:05
※ 編輯: cjcat2266 來自: 98.243.174.254 (05/07 07:28)
Killercat:傳統一點的話 loki::smallobject是個不錯的memory pool 05/07 09:35
Killercat:實作。最大的特點就是你只要繼承他,甚至不知道他會搞個 05/07 09:37
Killercat:pool出來,缺點大概就是有點難懂,不過還滿易用的 05/07 09:37
Killercat:boost::pool也是一種解法 不過還滿少看到有人用的 05/07 09:39
silveriii:推 05/07 10:11
jackace:這文章有錯誤的地方 new跟delete非常少去call system call 05/07 13:30
jackace:通常來說 heap的管理都在user space library都幫你做完了 05/07 13:31
jackace:只有在你new的當下userspace heap空間不夠才會去用system 05/07 13:31
jackace:call一次要一大塊回來 只要這一大塊還沒用完 接下來的new 05/07 13:32
jackace:都不用call到system call 05/07 13:32
hpps:>>jackace, linux基本上是這樣, windows不確定. 05/07 14:37
azureblaze:PC上目前大部分的地方其實亂搞都沒關係 05/07 15:15
azureblaze:反正RAM大CPU快OS和crt也不會太糟 05/07 15:15
azureblaze:不過別的平台就需要多注意了 05/07 15:16
hpps:用part3寫了個簡單的測試, 不曉得對不對 05/07 16:50
hpps:http://ideone.com/0KFQGQ 05/07 16:50
jackace:Windows也是阿 05/07 21:44
cjcat2266:感謝jackace指正,已將part 1該部分做修正 05/07 22:15
damody:boost::pool 在windows會突然很噸 不好用 05/08 10:21
Killercat:boost::pool是個比較特別的東西 他單獨砍member超慢 05/16 17:23
Killercat:這個不是只有windows有這問題 這是他演算法的關係 05/16 17:23