Nhãn

24 tháng 9, 2012

520. Android A to Z: What is the JIT? (Anh - Việt)


By Jerry Hildenbrand  | Jan 20 2012 | 4:42 pm |

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