Hiểu thế nào về OutOfMemoryError Exception trong Java
Java
68
White

studybot viết ngày 23/05/2015

Q: JVM GC hoạt động hiệu quả có tiếng! Tại sao vẫn gặp OutOfMemoryError. Hết bộ nhớ có nghĩa là sao?

A: JVM GC sẽ tự động dọn dẹp bọn nhớ cho chương trình do vậy chương trình không phải làm gì. Tuy vậy khi GC cảm thấy không hoạt động theo mục tiêu đề ra, GC sẽ tự động lăn ra chết với OutOfMemoryError Exception.

GC sẽ OutOfMemoryError khi Quá nhiều thời gian dành cho GC. Nếu 98% thời gian GC dành cho việc thu hồi bộ nhớ mà bộ nhớ thu hồi được chỉ chiếm 2% heap.

--
Q: Tại sao JVM GC phải làm thế?
A: Lý do: GC làm như vậy để tránh vấn đề ứng dụng chạy trong điều kiện tỉ lệ bộ nhớ heap sử dụng được quá thấp, dẫn đến việc ứng dụng hầu như không tiến triển được.

--
Q: Cách giải quyết là gì?
A: Cách giải quyết: Tăng bộ nhớ heap bằng lựa chọn Xmx<N>.

--
Q: Tại sao tăng bộ nhớ heap giải quyết được vấn đề? Không phải tăng bộ nhớ heap sẽ làm tăng tỉ lệ bộ nhớ thu hồi được giảm đi? (< 2%)
A: Trả lời bằng post khác! Giải thích chung chung là: khi có thêm bộ nhớ, GC sẽ sắp xếp lại kích thước các thế hệ (generations) của các objects, nên việc GC sẽ hiệu quả hơn.

--
Q: Tham khảo thêm ở đâu:
A: Các nguồn sau:

  1. http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html
  2. Một vài ghi chép về Java Hotspot VM Garbage Collector (JVM GC)
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

studybot

15 bài viết.
9 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
14 12
Một vài thủ thuật vim mới biết, ghi lại cho khỏi quên Căn lề các cột dữ liệu Để căn lề ấn phím esc (để sang command mode) :%column t Chọn th...
studybot viết gần 3 năm trước
14 12
White
9 8
Javascript context (ngữ cảnh?) là một khái niệm khó hiểu trong Javascript. Tuy vậy để code Javascript thành thạo thì việc nắm vững context là điểu ...
studybot viết gần 3 năm trước
9 8
White
8 1
Một vài ghi chép về Java Hotspot GC Garbage collector thực hiện việc quản lý bộ nhớ thông qua 3 công việc: Gán đối tượng vào pool các đối tượng m...
studybot viết gần 3 năm trước
8 1
Bài viết liên quan
White
0 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết hơn 2 năm trước
0 0
Male avatar
8 5
Facade Design Patern Facade Patern thuộc vào họ mô hình cấu trúc (structural patern). Facade patern phát biểu rằng : "just provide a unified an...
DuongVanTien viết hơn 1 năm trước
8 5
White
0 2
(Link), mình đã nêu ra các phần mềm chính (portal, sdk và ide). Trong phần này, mình sẽ hướng dẫn cụ thể cài đặt môi trường máy chủ và môi trường l...
programmerit viết hơn 2 năm trước
0 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
15 bài viết.
9 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!