Tin vui cho hội ghét ngồi chờ cài app nè! Trong Android N, Google đã bổ sung thêm tính năng phiên dịch mã nguồn Just in Time (JIT) cho bộ máy ART của mình. Nhờ có tính năng xịn xò này mà quá trình cài đặt app và cập nhật hệ thống sẽ diễn ra nhanh hơn hẳn.
Google tự hào khẳng định ngay cả những ứng dụng nặng ký mất nhiều phút để cài trên Android 6.0 thì giờ chỉ còn mất vài giây trên Android N mà thôi. Mình có thử nghiệm cài app Facebook At Work lên Nexus 6P chạy Android N thì đúng là ấn tượng thật, việc cài đặt rất mau chóng, chỉ khoảng 16 giây, trong khi bên One M8 chạy Android 6.0 thì phải đến gần 76 giây luôn!
Tất nhiên test này chỉ mang tính tương đối thôi nhé vì mình không có được 2 con Nexus 6P để so sánh fair, và cấu hình của M8 thì thấp hơn. Nhưng với một tác vụ không quá nặng như cài app thì sự chênh lệch về cấu hình không gây ảnh hưởng quá lớn đâu, mà chính JIT mới là main character ở đây!
Giải mã JIT và ART cho ae không rành tech
Hiện nay, các ứng dụng Java sau khi viết xong chỉ được biên dịch một phần bởi lập trình viên. Phần mã biên dịch này sau đó sẽ phải đi qua một trình biên dịch khác để trở thành mã máy (native code) phù hợp với CPU và thiết bị của người dùng, và ART chính là công cụ để Android làm điều đó.
ART lúc trước sử dụng cách thức biên dịch Ahead of Time (AOT), tức là nó sẽ phiên dịch mã nguồn của ứng dụng thành mã máy ở thời điểm bạn cài app vào thiết bị. Điều này đồng nghĩa với việc khi bạn chạy app lên, nó đã tồn tại sẵn ở dạng mã máy và thiết bị của chúng ta cứ thế mà thực thi app.
Nhưng cũng chính vì ART chạy biên dịch ở khâu cài app nên thời gian chờ của chúng ta sẽ kéo dài ra, nó còn khiến cho dung lượng bộ nhớ tăng lên nhanh hơn. Đây là nhược điểm của ART so với bộ máy Dalvik tiền nhiệm, vốn sử dụng cách phiên dịch JIT, tức là chỉ dịch khi bạn khởi động ứng dụng lên xài.
Combo ngầu: JIT + AOT = Winning!
Trong Android N (chú ý là N chứ không phải 6.0 nha), Google mang JIT trở lại, nhưng lần này nó không đứng một mình mà sẽ chạy kết hợp với AOT. Theo giải thích của hãng thì ART sẽ theo dõi và lập "hồ sơ" cho từng ứng dụng, trong đó ghi lại những phương thức và tính năng nào thường được sử dụng nhất và chỉ chạy AOT với các phương thức đó mà thôi nhằm đạt tốc độ cao (bạn có thể tưởng tượng nó như là một dạng cache).
Phần còn lại của app sẽ không được dịch sẵn mà chỉ dịch trong lúc bạn sử dụng theo kiểu JIT. Nhờ kiểu kết hợp thông minh này mà thời gian chờ cài sẽ giảm xuống, giảm lượng RAM tiêu thụ của app, tiết kiệm dung lượng bộ nhớ. Quá trình update hệ điều hành cũng nhanh hơn vì không còn công đoạn tối ưu app sau khi cài update nữa. Quá xịn phải không nào!
Nguồn: tinhte.vn
Google tự hào khẳng định ngay cả những ứng dụng nặng ký mất nhiều phút để cài trên Android 6.0 thì giờ chỉ còn mất vài giây trên Android N mà thôi. Mình có thử nghiệm cài app Facebook At Work lên Nexus 6P chạy Android N thì đúng là ấn tượng thật, việc cài đặt rất mau chóng, chỉ khoảng 16 giây, trong khi bên One M8 chạy Android 6.0 thì phải đến gần 76 giây luôn!
Tất nhiên test này chỉ mang tính tương đối thôi nhé vì mình không có được 2 con Nexus 6P để so sánh fair, và cấu hình của M8 thì thấp hơn. Nhưng với một tác vụ không quá nặng như cài app thì sự chênh lệch về cấu hình không gây ảnh hưởng quá lớn đâu, mà chính JIT mới là main character ở đây!
Giải mã JIT và ART cho ae không rành tech
Hiện nay, các ứng dụng Java sau khi viết xong chỉ được biên dịch một phần bởi lập trình viên. Phần mã biên dịch này sau đó sẽ phải đi qua một trình biên dịch khác để trở thành mã máy (native code) phù hợp với CPU và thiết bị của người dùng, và ART chính là công cụ để Android làm điều đó.
ART lúc trước sử dụng cách thức biên dịch Ahead of Time (AOT), tức là nó sẽ phiên dịch mã nguồn của ứng dụng thành mã máy ở thời điểm bạn cài app vào thiết bị. Điều này đồng nghĩa với việc khi bạn chạy app lên, nó đã tồn tại sẵn ở dạng mã máy và thiết bị của chúng ta cứ thế mà thực thi app.
Nhưng cũng chính vì ART chạy biên dịch ở khâu cài app nên thời gian chờ của chúng ta sẽ kéo dài ra, nó còn khiến cho dung lượng bộ nhớ tăng lên nhanh hơn. Đây là nhược điểm của ART so với bộ máy Dalvik tiền nhiệm, vốn sử dụng cách phiên dịch JIT, tức là chỉ dịch khi bạn khởi động ứng dụng lên xài.
Combo ngầu: JIT + AOT = Winning!
Trong Android N (chú ý là N chứ không phải 6.0 nha), Google mang JIT trở lại, nhưng lần này nó không đứng một mình mà sẽ chạy kết hợp với AOT. Theo giải thích của hãng thì ART sẽ theo dõi và lập "hồ sơ" cho từng ứng dụng, trong đó ghi lại những phương thức và tính năng nào thường được sử dụng nhất và chỉ chạy AOT với các phương thức đó mà thôi nhằm đạt tốc độ cao (bạn có thể tưởng tượng nó như là một dạng cache).
Phần còn lại của app sẽ không được dịch sẵn mà chỉ dịch trong lúc bạn sử dụng theo kiểu JIT. Nhờ kiểu kết hợp thông minh này mà thời gian chờ cài sẽ giảm xuống, giảm lượng RAM tiêu thụ của app, tiết kiệm dung lượng bộ nhớ. Quá trình update hệ điều hành cũng nhanh hơn vì không còn công đoạn tối ưu app sau khi cài update nữa. Quá xịn phải không nào!
Nguồn: tinhte.vn