What is the JIT? JIT stands for "Just In Time", and we use it to describe
a Dalvik JIT
compiler, which was added to Android with the 2.2 release. It compiles bytecode
into native machine code at runtime. Essentially it takes the code for an app,
analyzes it and converts it into something that runs faster. It does all this
while the application is running, and that's where the "just in time"
tag comes from. The JIT compiler designed for Android also can do this with a
very short "warm up" time, meaning it doesn't take very long to
analyze the code before it starts working. It stores information in a cache in
your phone's RAM, which means it's not an ideal solution for devices with low
memory. It's been optimized to have a small footprint -- about 100K per process
-- but even that is enough to impact performance on older models like the G1 or
HTC Magic. This is why most phones that came before the Nexus One never got an
official version from Google -- hardware limitations.
JIT là cái gì? JIT là viết tắt của "Just In Time", và chúng tôi dùng
nó để miêu tả trình biên dịch JIK Dalvik, cái đã được thêm vào Android 2.2. Nó biên dịch bytecode
(1 loại mã lập trình) vào trong mã máy khi chương trình đang chạy (runtime
hay execution time). Về cơ bản nó lấy mã cho một ứng dụng, phân tích nó
và chuyển đổi nó thành cái gì đó chạy nhanh hơn. Nó làm tất cả điều đó trong
khi ứng dụng đang chạy, và đó là lý do có tên "just in time". Trình
biên dịch JIT được thiết kế cho Android nên cũng có thể làm điều đó với 1 thời
gian "warm up - hàm ý chỉ
việc khởi động" rất
ngắn, có nghĩa là nó không mất nhiều thời gian để phân tích mã trước khi nó bắt
đầu làm việc. Nó cất giữ các thông tin trong 1 cache trong RAM phone của bạn,
cái này có nghĩa nó không phải là giải pháp lý tưởng cho các thiết bị có bộ nhở
nhỏ. Nó được tối ưu hóa để có 1 vùng chiếm dụng (footprint) nhỏ -- khoảng 100K
cho mỗi quá trình -- nhưng thậm chí nó vẫn đủ để thúc hiệu suất trên các model
đời cũ như G1 hay HTC Magic. Đây là câu trả lời vì sao hầu hết các phone ra
trước Nexus One không bao giờ có 1 phiên bản chính thức từ Google --
do giới hạn phần cứng.
You hear terms like "runs faster" or 4 to 5
times performance increase anytime you talk about
Android's JIT compiler. A JIT compiler simply saves CPU cycles --
more work can be done for each clock cycle. This means applications that were
throttled by CPU performance get faster, and apps that are
"rate-limited" (run until they are finished without taxing the
processor to the maximum) finish faster and use less battery because of it. Not
all applications see a significant speed increase, and most applications
written with the NDK or in native code won't see an increase at all, as they
don't use the Dalvik virtual machine.
Bạn sẽ nghe thấy câu "runs faster - chạy nhanh
hơn" hay nghe nói hiệu suất tăng 4-5 lần bất cứ khi nào bạn thảo luận về
trình biên dịch JIT của Android. Trình biên dịch JIT đơn giản là tiết kiệm các
chu kỳ của CPU -- có thể làm được nhiều việc hơn trong mỗi chu kỳ thời gian. Điều
này có nghĩa các ứng dụng mà đã được điều tiết theo hiệu suất CPU sẽ chạy nhanh
hơn, và các ứng dụng "rate-limited - hạn chế tiêu thụ" (chạy đến khi
chúng kết thúc mà không làm mệt bộ xử lý đến giới hạn cao nhất) hoàn thành
nhanh hơn ít hao pin hơn nhờ nó. Không phải tất cả ứng dụng đều tăng tốc ấn
tượng, hầu hết các ứng dụng được viết bằng NDK (Native
Development Kit - công cụ phát triển riêng) hay bằng mã đặc biệt (viết riêng
cho từng mã máy) đều không tăng
gì cả, khi chúng không sử dụng máy ảo Dalvik.
If all this reads like Greek to you, that's OK. To the
end user (that's you and me) all we should see is better performance in most of
our applications. We certainly saw that when Froyo was released
for the Nexus One, and things have just gotten better with every release. For
the more technically inclined, check out the video from
Android engineers Ben Cheng and Bill Buzbee during Google I/O 2010 where the JIT
compiler was introduced.
Nếu tất cả cái vừa đọc quá khó hiểu với bạn, OK không
sao. Đối với người dùng cuối (bạn và tôi) tất cả chúng ta sẽ thấy hiệu suất tốt
hơn trong hầu hết các ứng dụng của chúng ta. Không nghi ngờ gì chúng ta đã thấy
rằng khi Froyo cập nhật cho Nexus One, thì các thứ chỉ có chạy
nhanh hơn với mọi ứng dụng. Thiên
về kỹ thuật nhiều hơn, hãy xem video của các kỹ sư Android Ben Cheng và Bill Buzbee trong Google I/O 2010 nơi mà các các
trình biên dịch JIT đã được giới thiệu.
Không có nhận xét nào:
Đăng nhận xét