Dalvik VM vs ART (Android Runtime): Tác động đối với người dùng cuối?


22

Với Nexus 5 (Android 4.4 KitKat), Google đã xuất xưởng hai thời gian chạy để chạy ứng dụng.

Chọn tùy chọn Thời gian chạy trong Android 4.4 KitKat Thời gian hoạt động của Dalvik và ART trong Android 4.4 KitKat

Sự khác biệt giữa Dalvik & ART cho người tiêu dùng là gì? Làm thế nào endusers có thể bị ảnh hưởng bởi điều này? Có bất kỳ lý do cụ thể nào tôi nên chọn thời gian chạy ART mới không?


3
Việc bạn phải kích hoạt và tìm kiếm thông qua các tùy chọn Nhà phát triển để tìm thấy cài đặt này sẽ là một gợi ý rằng nó không dành cho người dùng cuối.
Dan Hulme

1
@DanHulme Điểm hay, nhưng những người không đam mê nhà phát triển vẫn chơi với các tùy chọn Nhà phát triển và họ thậm chí sử dụng nó cho mục đích không phát triển tích cực nhiều lần.
Android Quesito

Theo như trải nghiệm của người dùng là quan điểm của bạn thì bạn sẽ chỉ nhận thấy rằng năng lượng pin được tiết kiệm ở mức độ lớn, ... tuy nhiên bạn sẽ không thể thấy sự khác biệt về tốc độ trong khi chuyển từ Dalvik sang ART.
Rahul Raina

Câu trả lời:


26

Dalvik VM (Máy ảo) là phiên bản Google của máy ảo Java (ứng dụng chạy trên đó). VM giữ các ứng dụng tách biệt và độc lập với phần cứng thực tế và các ứng dụng khác. Nhưng, để làm việc này, Dalvik cần chuyển đổi cái gọi là mã byte (được thiết kế cho máy ảo) thành mã máy gốc. Để giảm thiểu hình phạt hiệu suất mà mã byte thành chuyển đổi mã gốc giới thiệu, một quy trình gọi là biên dịch Just-In-Time (JIT) được thực hiện, chuyển đổi mã nóng, tức là thường được sử dụng, mã byte thành mã gốc. 1

ART (Android Runtime) là sự thay thế cho Dalvik sử dụng trình biên dịch Ahead-Of-Time (AOT), nghĩa là các ứng dụng của bạn được biên dịch sang trạng thái sẵn sàng trước khi bạn khởi chạy chúng. Điều này thường được thực hiện, tại thời điểm cài đặt ứng dụng, làm cho quá trình khởi chạy và sử dụng chúng nhanh hơn và mượt mà hơn. Và vì điều này có nghĩa là quá trình biên dịch chỉ được thực hiện một lần, bạn cũng có thể thấy thời lượng pin tốt hơn.

Nếu ART tốt hơn về hiệu suất và thời lượng pin, tôi có nên bắt đầu sử dụng nó không?

Không. Nếu bạn làm điều đó, bạn có thể phá vỡ các ứng dụng của bên thứ ba. Google đã chuyển bản xem trước ART này với Android 4.4 cho các nhà phát triển để kiểm tra ứng dụng của họ trên đó.

Lưu ý bên lề: Cách tiếp cận của Google với ART là đánh bại iOS (ứng dụng iOS có nguồn gốc nên hoạt động tốt hơn ngay cả trên thông số kỹ thuật phần cứng cấp thấp), nhưng tôi không biết nó đang hướng đến đâu ... Một phân mảnh khác? Xem các OEM được tự do xây dựng các thiết bị bằng cách sử dụng một hoặc cả hai . Mặc dù phiên bản cuối cùng không ảnh hưởng đến hầu hết các ứng dụng, nhưng đó không phải là thứ đa nền tảng 100%.

1 Lưu ý rằng JIT đã được thêm vào Dalvik trong Android 2.2


3
Có thể có hai sự thật đáng chú ý: Kết quả AOT của ART trong các ứng dụng sử dụng dung lượng lưu trữ nhiều hơn 20,25% so với DEX. Các thử nghiệm cộng với Nexus-5 tôi đã đọc không cho thấy bất kỳ sự khác biệt nào về tốc độ chủ quan cũng như độ bền của pin. Cả hai chắc chắn sẽ cải thiện, coi ART trong KitKat chỉ là bản xem trước và kiểm tra khả năng tương thích của nhà phát triển (ví dụ WhatsApp thất bại). Vì vậy, tôi đưa ra kết luận thứ hai của Sachin: Nó vẫn chưa tốt cho người dùng cuối.
Izzy

2
Câu trả lời tuyệt vời. Tôi lấy tự do để cải thiện nó một chút. Nhưng tôi không đồng ý với đoạn cuối: ART không tăng phân mảnh: Nếu ART được coi là sẵn sàng sản xuất, thì ứng dụng của bạn được điều hành bởi Dalvik hoặc ART, cả hai đều sử dụng định dạng .dex giống như điểm bắt đầu. Chỉ có ART mới AOT biên dịch mã .dex thành mã gốc.
Dòng chảy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.