Có rất nhiều điều phải nói khi dành thời gian để thử nghiệm các cài đặt thu gom rác khác nhau, nhưng như đã đề cập ở trên, việc làm như vậy thường không hữu ích.
Tôi hiện đang thực hiện một dự án liên quan đến một môi trường giới hạn bộ nhớ và một lượng dữ liệu tương đối lớn - có một số phần lớn dữ liệu đã đẩy môi trường của tôi đến giới hạn của nó và mặc dù tôi đã có thể giảm mức sử dụng bộ nhớ xuống. rằng về lý thuyết nó sẽ hoạt động tốt, tôi vẫn sẽ gặp lỗi không gian đống --- các tùy chọn GC dài dòng cho tôi thấy rằng nó đang cố gắng thu thập rác, nhưng vô ích. Trong trình gỡ lỗi, tôi có thể thực hiện System.gc () và chắc chắn rằng sẽ có "rất nhiều" bộ nhớ khả dụng ... không phải là nhiều, nhưng đủ.
Do đó, lần duy nhất ứng dụng của tôi gọi System.gc () là khi nó sắp nhập phân đoạn mã nơi các bộ đệm lớn cần thiết để xử lý dữ liệu sẽ được phân bổ và một bài kiểm tra trên bộ nhớ trống có sẵn cho thấy rằng tôi không đảm bảo có nó. Đặc biệt, tôi đang xem xét môi trường 1gb, nơi dữ liệu tĩnh chiếm ít nhất 300mb, với phần lớn dữ liệu không tĩnh liên quan đến thực thi ngoại trừ khi dữ liệu đang được xử lý có ít nhất 100-200 MB tại nguồn. Tất cả đều là một phần của quy trình chuyển đổi dữ liệu tự động, do đó, tất cả dữ liệu đều tồn tại trong khoảng thời gian tương đối ngắn về lâu dài.
Thật không may, mặc dù thông tin về các tùy chọn khác nhau để điều chỉnh bộ thu gom rác có sẵn, nhưng có vẻ như phần lớn là một quá trình thử nghiệm và các chi tiết cụ thể ở cấp độ thấp hơn cần thiết để hiểu cách xử lý các tình huống cụ thể này không dễ dàng có được.
Tất cả những điều đã nói, mặc dù tôi đang sử dụng System.gc (), tôi vẫn tiếp tục điều chỉnh bằng cách sử dụng các tham số dòng lệnh và cố gắng cải thiện thời gian xử lý tổng thể của ứng dụng của mình một lượng tương đối đáng kể, mặc dù không thể vượt qua vấp ngã do làm việc với các khối dữ liệu lớn hơn. Điều đó đang được nói, System.gc () là một công cụ .... một công cụ rất không đáng tin cậy, và nếu bạn không cẩn thận với cách bạn sử dụng nó, bạn sẽ ước rằng nó không hoạt động thường xuyên hơn không.