看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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