作者yauhh (喲)
看板C_and_CPP
標題Re: [問題] 有可能降低 Page Fault rate 嗎?
時間Wed Jan 6 13:29:27 2010
※ 引述《HudsonE (象象共和國國王)》之銘言:
: 沒想到會來這邊問問題,
: 不過在網路上通常遇到的回答都是: 不要理它
: 只好來求助板上的大家了
: 我知道 page fault 是有虛擬記憶體 OS 一定會有的情況
: 但是每次造成 hardware page fault 的 penalty 實在太高了
: 舉個數據來說, 每秒最高造成的 page faults 高達兩萬五千多次
: 自己程式這邊的感覺就是很明顯一秒鐘的超大停頓
: 但問題是我們程式的 Frame rate 至少要在 20 (完全就是爆炸)
: 目前在我想法中的解決方案有
: 1. 減少記憶體的使用
: 2. 將未來可能用到的記憶體內容複製至固定的記憶體區塊
應該不是這樣. 該用多少記憶體是不變的,把使用量藏到別的地方只是增加別處的
penalty.
減少page fault次數,主要是改程式寫法.
row-major的資料結構就用row-major的迴圈是一種處理法.
減少迴圈層次也是一種處理法.
硬體方面,使用成對的小量記憶體模組,取代單數的大量記憶體模組,
也可以減少page fault.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.109.190
※ 編輯: yauhh 來自: 218.160.109.190 (01/06 13:32)
推 ledia:減低一段時間內的使用記憶體涵蓋範圍, 看 memory locality 01/06 13:35
→ ledia:wikipedia 說減少記憶體用量 (甚至加大可用記憶體) 是有用的 01/06 13:36
→ ledia:不過我實際經驗中沒有注意到有助益過 01/06 13:37
→ ledia:也許是我增減的幅度太小... 還是值得一試 01/06 13:38
→ HudsonE:我的想法 2 是想嘗試 memory locality 01/06 17:10
→ HudsonE:看能不能降低 page fault times 的 variance ~"~ 01/06 17:11