Tôi đang sử dụng các tùy chọn GC XX:+UseParNewGC-XX:+UseConcMarkSweepGC
cho ứng dụng của mình.Cách đặt bộ nhớ phát hành JVM trở lại OS
Vì hầu hết các bạn đã trải qua JVM là tốt khi tăng heap lên đến kích thước heap tối đa, tuy nhiên nó không giải phóng bộ nhớ trở lại hệ điều hành. Tôi đã xem qua số -XX:MaxHeapFreeRatio
và -XX:MinHeapFreeRatio
nhưng chúng bị bỏ qua cho Bộ thu gom rác song song.
Có các tùy chọn đặc biệt để buộc bộ nhớ phát hành JVM quay trở lại OS cho kết hợp -XX:MaxHeapFreeRatio and -XX:MinHeapFreeRatio
.
Vâng .. Ngay cả khi bạn tìm thấy các tùy chọn cho những điều này, chúng không được đảm bảo để làm việc trên các kiến trúc. – TheLostMind
@TheLostMind - Là '-XX: MaxHeapFreeRatio' và' -XX: MinHeapFreeRatio' được bảo đảm hoạt động trên JVM 64 bit của JVM Tôi không chắc chắn nếu các tham số trên '-XX: MaxHeapFreeRatio' và' -XX: MinHeapFreeRatio' chỉ dành cho người thu gom rác nối tiếp hay không. Tôi đang tìm những trích dẫn mâu thuẫn với điều đó. – Pushkar
XX: + UseParNewGC với tỷ lệ tự do tối đa và tối thiểu không giải phóng bộ nhớ trở lại hệ điều hành trong java 1.8.0_73 trở đi cho thiết lập Windows 64 bit của tôi ít nhất. Tuy nhiên, nếu bạn không yêu cầu GC một cách rõ ràng, nó chỉ có thể quyết định làm như vậy nếu hệ điều hành dưới áp lực bộ nhớ. Cuối cùng, tôi không biết nếu tùy chọn UseConcMarkSweepGC thay đổi bất kỳ điều này. – nsandersen