Tôi muốn biết nội bộ của JVM, cách nó hoạt động và chi tiết quan trọng. Bạn có thể đề xuất bất kỳ tài nguyên hoặc sách hay nhất nào có sẵn cho điều này không ??Hiểu JVM tốt hơn
Trả lời
Hầu hết những gì tôi biết về JVM đến từ tài liệu Sun. Họ có một số trang trắng lớn trên HotSpot VM: http://java.sun.com/javase/technologies/hotspot/index.jsp
Bạn nói hiệu suất, vì vậy có thể bạn sẽ quan tâm đến các tài liệu hiệu suất Sun: http://java.sun.com/docs/performance/
Đối với một bàn tay nhiều hơn về cách tiếp cận, hãy thử nhìn vào Kaffe. Điều này sẽ cho bạn thấy những gì một máy ảo làm, nhưng không nhất thiết phải làm thế nào mã Java hoạt động trong JVM của Sun:
Kaffe là một phòng thực hiện sạch của máy ảo Java, cộng với các thư viện lớp liên quan cần thiết để cung cấp một thời gian chạy Java môi trường.
Và OpenJDK là một nơi tuyệt vời để tìm hiểu về cách nền tảng Java được thực hiện: http://openjdk.java.net/
Lựa chọn đầu tiên rõ ràng là The Java Virtual Machine Specification. Ngoài ra còn có The Wikipedia Page, liên kết tới các tài nguyên bổ sung.
Chương từ "Bên trong Java 2 Virtual Machine":
http://www.artima.com/insidejvm/ed2/index.html
"Under the Hood" bài viết bởi Bill Venners
http://www.artima.com/underthehood/index.html
Ngoài ra còn có "Jasmin", một Assember cho JVM, nếu bạn muốn làm bẩn tay và thử lập trình mức thấp với JVM.
Nếu động lực của bạn là để tìm hiểu làm thế nào để viết mã mà làm việc nhanh hơn hoặc sử dụng ít bộ nhớ spec VM sẽ không giúp quá nhiều.
Thông số VM không được thiết kế để cung cấp cho bạn thông tin về điều đó, nó được thiết kế để cho nhà phát triển VM biết, gần đúng, cách triển khai VM.
Điều đó được cho là không thể đọc được.
Cách tốt nhất để tìm hiểu về các vấn đề tốc độ/bộ nhớ ở mức cao hơn nhiều, có bất kỳ số lượng sách nào sẽ giúp bạn nhanh hơn/mã leaner hơn.
Hồ sơ là một công cụ vô giá để kiểm tra mã của bạn để xem nhanh hơn/sử dụng ít bộ nhớ hơn. Hồ sơ, xem những gì là chậm/sử dụng rất nhiều bộ nhớ, thay đổi nó, hồ sơ, xem những gì thay đổi đã làm.
Dưới đây là một liên kết đến trình Java trực tuyến chuyên sâu của tôi trên nền tảng Udemy. Nó có một chương toàn diện toàn diện về JVM với khoảng 3 giờ video. Nó bao gồm tất cả mọi thứ từ Lifetime của một loại, các khu vực dữ liệu thời gian chạy, sự phản ánh, thu gom rác, đống ngăn xếp và các tập lệnh hướng dẫn (heap &). Cuốn sách trực tuyến "Bên trong máy ảo Java 2" được đề cập trong một trong các câu trả lời được sử dụng như một trong những cuốn sách tham khảo.
https://www.udemy.com/java-in-depth-become-a-complete-java-engineer/
Dưới đây là một tốt và giải thích ngắn gọn của heap, các đối tượng phân bổ, và thu gom rác thải, Understanding Memory Management. Bạn có thể khám phá thêm từ đó.
- 1. Hiểu về C# generics tốt hơn nhiều
- 2. Tìm hiểu về Java bytecode và JVM
- 3. Tìm hiểu JVM Eclipse đang chạy trên
- 4. Tài nguyên tốt hơn để tìm hiểu buildout
- 5. Tìm hiểu về chi phí đối tượng trong JVM
- 6. Tài liệu D tốt hơn
- 7. Hiểu rõ hơn về ViewBinder của SimpleAdapter
- 8. Vỏ Linux tốt hơn?
- 9. Cái nào tốt hơn?
- 10. Scala có hoạt động tốt trên JVM độc quyền không?
- 11. Cách tốt nhất để tìm hiểu WebGL
- 12. Đó là tốt hơn: mysql_connect hoặc mysql_pconnect
- 13. XPath hoặc Linq2Xml tốt hơn
- 14. Tùy chọn nào tốt hơn?
- 15. jqGrid hoặc dataTable, tốt hơn?
- 16. phút hoặc gzip, tốt hơn?
- 17. Tham chiếu Boost tốt hơn?
- 18. CSS tốt hơn trong .NET?
- 19. lệnh tốt hơn cho Windows?
- 20. Khi MyISAM tốt hơn InnoDB?
- 21. định nghĩa nào tốt hơn?
- 22. "Tốt hơn" nổi trong CSS
- 23. Cách tìm hiểu thuật toán [mã hóa] nào được JVM của tôi hỗ trợ?
- 24. Khó hơn, tốt hơn, nhanh hơn, mạnh hơn ... Kỹ thuật cho CAPTCHA dựa trên hình ảnh?
- 25. JVM OpenJDK có giống JVM Java Java SE không?
- 26. Cố gắng để hiểu hơn() và phân vùng bằng cách
- 27. thông số đống JVM
- 28. Tham chiếu tốt về cách scala được ánh xạ tới jvm bytecode
- 29. In Tất cả Flags JVM
- 30. Làm thế nào để hướng dẫn JVM để giữ chân bộ nhớ càng thấp càng tốt?