2011-01-24 41 views
5

Đã có nhận xét trong câu hỏi calling-system-gc-explicitly nói rằng "Bạn không thể" ép buộc "một JVM chung để thực hiện thu gom rác vì bộ thu gom rác không thực sự được yêu cầu bởi thông số JVM.". Câu hỏi của tôi là nếu có một JVM như vậy (và làm thế nào và nó sẽ được sử dụng ở đâu, nếu có).Có một JVM thiếu bộ thu gom rác không?

Trả lời

9

Ví dụ: JVM của JavaCard thiếu thu thập rác cho đến v3.

+0

+1 Tham chiếu tuyệt vời. isGarbageCollectionSupported() và requestGarbageCollection() đã được giới thiệu trong JCVM 2.2. – xelco52

3

Bộ sưu tập rác (nếu bạn bỏ qua các tham chiếu yếu và mềm) gần như là một mô phỏng có bộ nhớ vô hạn, ít nhất là đối với các đối tượng không thể truy cập được. Nếu một vật thể bị thu gom rác trong rừng và không có mã nào có thể chạm tới nó, nó có tạo ra âm thanh không?

Trong thực tế, các JVM không có người thu gom sẽ ít và xa vì bộ nhớ thực tế bị hạn chế. Về những nơi duy nhất tôi có thể nghĩ về nơi JVM không có GC sẽ hữu ích sẽ là một JVM nghiên cứu/học tập, hoặc JVM chỉ sử dụng cho các quy trình rất ngắn (nơi bạn biết bạn sẽ phá hủy toàn bộ JVM trước khi nó tiêu thụ quá nhiều bộ nhớ).