當檢查Process Explorer中的過程時,如果存在多個頁面錯誤,這意味着什麼?該應用程序正在處理相當多的數據,並且UI不太靈敏。是否有可以減少或消除頁面錯誤的代碼優化?增加系統的物理內存是否會有所作爲?是什麼導致頁面錯誤以及如何最小化它們?
5
A
回答
2
http://en.wikipedia.org/wiki/Page_fault
增加您計算機上的物理RAM可能會導致更少的頁面錯誤,雖然設計更改您的應用程序會比添加RAM好得多。一般來說,擁有較小的內存佔用量,並且在同一頁面上同時訪問的內容會減少頁面錯誤的數量。此外,嘗試儘可能一次性處理內存中的一些數據,這樣您就不需要多次訪問它,這可能會導致頁面錯誤(又名抖動)。
3
它也可能會有所幫助,以確保所後互相訪問的內存是互相靠近(例如,如果你有一些對象,將它們放置在一個數組),如果這些對象有大量的數據,這是非常罕見使用時,將它放在另一個班級中,並讓第一堂課引用第二堂課。這樣你大部分時間都會使用更少的內存。
0
一個設計選項是編寫一個內存緩存系統,懶惰地創建內存(按需創建)。這樣的高速緩存將有一組預先分配的內存塊,通過它們的大小訪問。例如,一個由N個列表組成的數組,每個列表都有M個緩衝區。每個列表負責爲您提供一定大小的內存區域。 (例如,從每個列表中爲您帶來的內存在2^i(i = 0..N-1)的範圍內,即使您要使用少於2^i的值,您也不會在緩衝區中使用額外的內存。 這將是小內存浪費權衡,VS緩存和更少的頁面錯誤
另一種選擇是使用nedmalloc
好運 利奧爾
相關問題
- 1. 什麼是com.sec.android.intent.action.DVFS_BOOSTER以及是什麼導致它?
- 2. 什麼原因導致PFUbiquityLocationStatus錯誤以及如何解決?
- 3. 什麼原因導致這個錯誤以及如何解決它?
- 4. 什麼是App_Browser文件夾以及它爲何導致Bug?
- 5. 最小化angularjs腳本導致錯誤
- 6. ObjectSpace - 它是什麼以及人們如何使用它?
- 7. 什麼是一些常見的SocketExceptions以及導致它們的原因?
- 8. 什麼可能導致頁面未找到錯誤頁面?
- 9. 開關導致#error,爲什麼以及如何修復它
- 10. 是什麼導致這個錯誤,我該如何解決它?
- 11. 這是什麼JPA錯誤,以及如何解決它?
- 12. 這是什麼Eclipselink錯誤,以及如何解決它?
- 13. 這個錯誤是什麼意思,以及如何解決它?
- 14. 這是什麼錯誤訊息,以及如何解決它
- 15. 這是什麼彈簧錯誤以及如何修復它
- 16. 這個錯誤指的是什麼,以及如何解決它?
- 17. 爲什麼它會導致錯誤?
- 18. 符號常數:它們如何存儲以及它們的類型是什麼?
- 19. 什麼是(void(**)())以及如何typedef它?
- 20. 什麼是IntelliJ中的「手錶」以及如何使用它們?
- 21. 什麼是NULL值,以及如何在SQLite中處理它們
- 22. 什麼是intvectors以及如何閱讀/使用它們?
- 23. 什麼是默認的ReflectPermissions以及如何更改它們?
- 24. 什麼是StringIndexer,VectorIndexer以及如何使用它們?
- 25. 什麼是BitBucket中的分支以及如何管理它們
- 26. Android:這些菜單是什麼以及如何構建它們?
- 27. 什麼是sqlite開發標題以及如何安裝它們?
- 28. 這些是什麼以及如何使用Ruby刪除它們?
- 29. 什麼是cufon和畫布以及如何覆蓋它們
- 30. 什麼是ResourceContainers以及如何將它們用於雲端點?
+1:雖然這是我的模式在數據庫設計中非常瞭解,我從來沒有真正考慮過OO設計,我喜歡它! – 2010-03-04 01:03:01