我想知道Java VM如何分配內存? JAVA在我們的計算機的物理內存中分配內存嗎? 現在,我試圖比較兩個數據結構,鏈接列表和數組,以頁面錯誤和緩存命中/未命中方面謹慎,以查看每個數據結構在真正低級別(硬盤,內存,緩存級別)中的性能,Java VM如何分配內存?
3
A
回答
5
我不知道這是否回答你的問題,但IBM有一篇關於JVM如何在Windows/Linux上使用本機內存的好文章。
1
Java在啓動時從操作系統分配連續內存。一旦它擁有堆所需的內存,它將控制如何分配內存。
Java中的內存被連續分配,所以每個對象很可能會按照分配的順序在內存中分配。 (但這不能保證) 此外,如果對象存在次要集合,它可能會按照發現對象的順序進行復制。 (再次不保證)
就個人而言,如果您期望隨機訪問,我會使用ArrayList,如果您想要插入任何地方,但除了列表的末尾,LinkedList。
Java執行得非常糟糕,其中任何一項都被交換到磁盤。我建議確保它足夠小以適應內存。它的緩存行爲不容易控制,你可以做的最好的事情是試驗JVM如何優化你的代碼和它的緩存行爲。
相關問題
- 1. java動態內存分配
- 2. 由java分配的內存
- 3. Java swing gui內存分配
- 4. Java - 類的內存分配
- 5. NSMutableData如何分配內存?
- 6. 內存分配
- 7. 如何爲字符串分配內存?
- 8. Java PermGen是VM總內存的一部分嗎?
- 9. visual vm分析內存泄漏
- 10. Dalvik內存分配
- 11. 如何釋放Swingworker分配的內存?
- 12. 內存分配
- 13. 內存分配
- 14. 內存分配
- 15. 內存分配
- 16. 內存分配
- 17. 內存分配
- 18. 內存分配
- 19. 分配內存
- 20. 內存分配
- 21. Java內存分配解決方法
- 22. java中對象的內存分配
- 23. 內存分配在Java中的類?
- 24. 的Java分配內存泄漏
- 25. 釋放內存分配給Java中
- 26. Java的內存分配對齊
- 27. Java子列表內存分配
- 28. Java - 內存分配困難(GC_FOR_ALLOC)
- 29. 在java中查看內存分配
- 30. 如何將內存分配給java中的對象
很好的鏈接,謝謝! – 2011-03-06 21:32:48