Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Phát triển với Java thời gian thực, Phần 2: Cải thiện chất lượng dịch vụ Sử dụng Java thời gian thực
MIỄN PHÍ
Số trang
29
Kích thước
257.3 KB
Định dạng
PDF
Lượt xem
1540

Phát triển với Java thời gian thực, Phần 2: Cải thiện chất lượng dịch vụ Sử dụng Java thời gian thực

Nội dung xem thử

Mô tả chi tiết

Phát triển với Java thời gian thực, Phần 2: Cải thiện chất lượng dịch vụ

Sử dụng Java thời gian thực để giảm bớt độ đa dạng trong các ứng dụng Java

Mark Stoodley, Lãnh đạo Kỹ thuật Thời gian Thực WebSphere, IBM Toronto Lab

Charlie Gracie, Lãnh đạo nhóm Máy ảo J9, IBM

Tóm tắt: Một số ứng dụng Java™ không cung cấp được chất lượng hợp lý của

dịch vụ mặc dù đạt được các mục tiêu hiệu năng khác, chẳng hạn như thời gian trễ

trung bình hoặc thông lượng tổng thể. Bằng cách đưa ra các đoạn dừng hoặc ngắt

không chịu kiểm soát của ứng dụng, ngôn ngữ Java và hệ thống thời gian chạy đôi

khi có thể chịu trách nhiệm về không đáp ứng các độ đo hiệu năng của ứng dụng.

Bài viết này là bài thứ hai trong loạt bài ba phần, giải thích nguồn gốc căn nguyên

của trễ và ngắt trong một JVM và mô tả các kỹ thuật cho phép bạn có thể dùng để

giảm thiểu các căn nguyên, nhằm ứng dụng của bạn cung cấp chất lượng dịch vụ

ổn định hơn.

Tính đa dạng trong một ứng dụng Java — thường gây ra do các đoạn dừng, hoặc

trễ, xảy ra vào những lúc không thể đoán trước được — có thể xảy ra qua ngăn

xếp phần mềm. Các trễ có thể xuất hiện do:

 Phần cứng (trong các quá trình xử lý chẳng hạn như nhớ nhanh).

 Phần đệm (xử lý của các ngắt quản lý hệ thống chẳng hạn như dữ liệu về

nhiệt độ bộ xử lý trung tâm).

 Hệ điều hành (trả lời một ngắt hoặc khai thác một hoạt động thông minh đã

lên lịch thường kì).

 Các chương trình khác chạy trên cùng hệ thống.

 JVM (gom rác, biên dịch Đúng lúc, và tải lớp).

 Chính ứng dụng Java.

Bạn có thể hiếm khi bù lại ở một mức cao cho các trễ do mức thấp hơn gây nên,

vậy nếu bạn cố gắng giải quyết độ đa dạng chỉ ở mức ứng dụng, có thể bạn chỉ cần

chuyển đổi JVM hoặc các trễ của hệ điều hành ở đâu đó mà không giải quyết vấn

đề thực. May mắn là các thời gian chờ đối với các mức thấp hơn có xu hướng

tương đối ngắn hơn các thời gian chờ ở các mức cao, như vậy chỉ khi nào yêu cầu

của bạn đối với việc giảm độ đa dạng là vô cùng nhiều thì bạn mới cần xem xét

thấp hơn JVM hoặc hệ điều hành. Nếu các yêu cầu của bạn không nhiều đến như

vậy, thì bạn có thể gần như chắc chắn tập trung đủ các cố gắng của bạn ở mức

JVM và trong ứng dụng của bạn.

Java thời gian thực cho bạn các công cụ mà bạn cần phải vật lộn với các tài

nguyên biến đổi trong một JVM và trong các ứng dụng của bạn để cung cấp chất

lượng dịch vụ mà những người sử dụng của bạn đòi hỏi. Bài viết này đề cập đến

nguồn gốc của sự đa dạng ở các mức JVM và ứng dụng một cách chi tiết và mô tả

các công cụ và kỹ thuật mà bạn có thể sử dụng để giảm nhẹ tác động của chúng.

Sau đó nó đưa ra một ứng dụng máy chủ Java đơn giản trình bày một số khái niệm

này.

Nhằm vào các nguồn biến đổi

Các nguồn biến đổi ban đầu trong một JVM xuất phát từ tính chất động của ngôn

ngữ Java:

 Bộ nhớ không giải phóng hiển hiện do ứng dụng mà thay vào đó được phục

hồi theo định kỳ bởi bộ gom rác.

 Các lớp được giải quyết khi ứng dụng sử dụng chúng đầu tiên.

 Mã riêng được biên dịch (và có thể được biên dịch lại bằng một Bộ biên

dịch Đúng lúc (Just-in-time (JIT) compiler) khi ứng dụng đang chạy, dựa

trên các lớp và phương thức nào được gọi ra thường xuyên.

Ở mức ứng dụng Java, việc quản lý các xử lí là lĩnh vực chủ yếu liên quan đến độ

đa dạng.

Đoạn dừng gom rác

Khi bộ gom rác chạy để phục hồi bộ nhớ mà chương trình không còn sử dụng nữa,

nó có thể dừng tất cả các xử lí ứng dụng. (Kiểu bộ gom này gọi là một bộ gom

Stop-the-world (Dừng lại tất cả), hay bộ gom STW.) Hoặc nó có thể thực hiện một

số công việc của mình đồng thời với ứng dụng. Trong trường hợp ấy, các tài

nguyên mà bộ gom rác cần có cũng không đủ dùng cho ứng dụng, cho nên việc

gom rác (GC) là nguyên nhân gây dừng và biến đổi đối với hiệu năng ứng dụng

Java, như thường được biết đến. Mặc dù nhiều hình mẫu GC có các ưu điểm và

nhược điểm của nó, khi mục tiêu đối với một ứng dụng là các đoạn dừng GC ngắn,

hai lựa chọn chính là bộ gom sản sinh (generational) và và bộ gom thời gian thực

(real-time).

Tải ngay đi em, còn do dự, trời tối mất!