Vài ghi chú về GC và setting của java
Java
77
White

huydx viết ngày 14/09/2015

Khi một object Java được tạo mới, sẽ được quản lý tại một trong 3 vùng:

1. Vùng New (Young generation)

Vùng này chia làm 3 vùng nhỏ:

  • Eden
  • From
  • To

Đầu tiên object sẽ được nhét vào eden. Khi eden đầy thì ScavengeGC (GC chuyên dùng để đi "giải quyết" các object thuộc vùng New) sẽ đi xử các object không cần thiết. Các object chưa bị giải quyết sẽ được đưa đến From và To. Sau N lần GC (N được quyết bằng chỉ số gọi là MaxTenuringThreshold, default là 32) mà một object vẫn còn "sống" thì object sẽ được chuyển đến vùng Old

alt text

2. Vùng Old (Old Generation)

Vùng này chuyên để chứa các object "sống dai". Khi vùng Old đầy thì FullGC sẽ được chạy. FullGC là một xử lý nặng, với các chương trình sản sinh ra hàng triệu objects thì FullGC có thể tốn đến hàng giây. Khi FullGC chạy thì tất cả chương trình sẽ bị "đóng băng".

3. Vùng Permanent

Vùng này chứa các thông tin meta như các thông số về class và method... Với các chương trình mà class-loading được lặp đi lặp lại nhiều lần thì vùng permanent cần to hơn bình thường một chút.

Các thông số tuning:

-Xms Giá trị size khởi đầu của toàn bộ Heap
-Xmx Giá trị size max của toàn bộ Heap
-XX:NewSize Giá trị size ban đầu của vùng New của Heap
-XX:MaxNewSize Giá trị size Max của vùng New của Heap
-XX:PermSize Giá trị size ban đầu của vùng Permanent
-XX:MaxPermSize Giá trị size Max của vùng Permanent
-XX:NewRatio Tỉ lệ phân chia bộ nhớ giữa vùng New và Old
-XX:SurvivorRatio Tỉ lễ phân chia bộ nhỡ giữa vùng [Eden] và [From/To] trong New

Lưu ý với Hotspot sẽ có các option khác mà các bạn có thể tham khảo ở:
http://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html

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

huydx

116 bài viết.
945 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
148 14
Introduction (Link) là một cuộc thi ở Nhật, và cũng chỉ có riêng ở Nhật. Đây là một cuộc thi khá đặc trưng bởi sự thú vị của cách thi của nó, những...
huydx viết gần 2 năm trước
148 14
White
118 15
Happy programmer là gì nhỉ, chắc ai đọc xong title của bài post này cũng không hiểu ý mình định nói đến là gì :D. Đầu tiên với cá nhân mình thì hap...
huydx viết hơn 3 năm trước
118 15
White
95 10
(Ảnh) Mở đầu Chắc nhiều bạn đã nghe đến khái niệm oauth. Về cơ bản thì oauth là một phương thức chứng thực, mà nhờ đó một web service hay một ap...
huydx viết 3 năm trước
95 10
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 gần 3 năm trước
0 0
Male avatar
9 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 gần 2 năm trước
9 5
White
4 2
Một số hàm giúp mapping data đơn giản với Groovy Ví dụ với list data như sau: def student1 = name: "Huan", age: 22, gender: "male"] def student...
Tất Huân viết 6 ngày trước
4 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
116 bài viết.
945 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á!