2010-02-10 25 views

回答

2

http://en.wikipedia.org/wiki/Page_fault

增加您計算機上的物理RAM可能會導致更少的頁面錯誤,雖然設計更改您的應用程序會比添加RAM好得多。一般來說,擁有較小的內存佔用量,並且在同一頁面上同時訪問的內容會減少頁面錯誤的數量。此外,嘗試儘可能一次性處理內存中的一些數據,這樣您就不需要多次訪問它,這可能會導致頁面錯誤(又名抖動)。

3

它也可能會有所幫助,以確保所後互相訪問的內存是互相靠近(例如,如果你有一些對象,將它們放置在一個數組),如果這些對象有大量的數據,這是非常罕見使用時,將它放在另一個班級中,並讓第一堂課引用第二堂課。這樣你大部分時間都會使用更少的內存。

+0

+1:雖然這是我的模式在數據庫設計中非常瞭解,我從來沒有真正考慮過OO設計,我喜歡它! – 2010-03-04 01:03:01

0

一個設計選項是編寫一個內存緩存系統,懶惰地創建內存(按需創建)。這樣的高速緩存將有一組預先分配的內存塊,通過它們的大小訪問。例如,一個由N個列表組成的數組,每個列表都有M個緩衝區。每個列表負責爲您提供一定大小的內存區域。 (例如,從每個列表中爲您帶來的內存在2^i(i = 0..N-1)的範圍內,即使您要使用少於2^i的值,您也不會在緩衝區中使用額外的內存。 這將是小內存浪費權衡,VS緩存和更少的頁面錯誤

另一種選擇是使用nedmalloc

好運 利奧爾

相關問題