Tôi bắn lên console IRB JRuby tôi và gõ:JRuby - Cách khởi động bộ thu gom rác?
irb(main):037:0* GC.enable
(irb):37 warning: GC.enable does nothing on JRuby
=> true
irb(main):038:0> GC.start
=> nil
irb(main):039:0>
Làm thế nào tôi có thể tự kích hoạt hoặc khởi động rác JVM trong một chương trình?
Tôi hỏi vì tôi có một chương trình cần tạo khoảng 500 MB dữ liệu thử nghiệm và lưu nó trong MySQL. Chương trình sử dụng khoảng 5 cấp độ của vòng lặp lồng nhau, và nó treo với một ngoại lệ heap bộ nhớ JVM sau khi tạo ra khoảng 100 MBytes dữ liệu thử nghiệm vì không có bộ nhớ heap hơn. Tôi muốn cho phép bộ thu gom rác chạy sau mỗi lần chạy vòng lặp bên ngoài sao cho tất cả các đối tượng mồ côi được tạo ra trong các vòng bên trong có thể được làm sạch.
Nó không có khả năng giúp đỡ, bởi vì nếu JVM hết bộ nhớ, nó sẽ chạy GC trước khi từ bỏ. Bạn có thể cần phải chắc chắn rằng bạn không giữ tài liệu tham khảo dài hơn chúng cần thiết và/hoặc tăng kích thước heap. – theglauber