Tham dự Tech Lounge

Tham dự Tech Lounge


Android 4.4 có bộ nhân giải mã mới, hiệu năng sẽ tốt hơn?

vuhai6
1/11/2013 0:40Phản hồi: 180
Android 4.4 có bộ nhân giải mã mới, hiệu năng sẽ tốt hơn?
tinhte_android 4.4.png

Người dùng Android chắc đôi lần đã nghe đến Dalvik, trình biên dịch nằm sâu trong nhân hệ thống đóng vai trò giải mã và biên tập các lệnh của phần mềm thành lệnh hệ thống. Chính vì đóng vị trí quan trọng trong hệ thống như vậy nên máy ảo Dalvik góp phần không nhỏ trong việc Android chạy nhanh hay chậm, dù rằng chúng ta có thể tăng tốc độ hệ thống bằng một cấu hình cực mạnh (tìm hiểu thêm tại đây). Với Android 4.4, giải pháp mà Google đưa ra là thay để Dalvik bằng một hệ thống mới hơn mà họ gọi là ART. Hiện tại đang trong quá trình chuyển đổi, vì thế với công cụ lập trình Android SDK mới thì các lập trình viên có thể lựa chọn giữa 2 giải pháp Dalvik và ART.

Rất tiếc là hôm qua Google không nói nhiều về trình biên dịch ART mới này, nhưng họ rất tự tin khi nói rằng Android 4.4 sẽ được tối ưu cho cả những phần cứng có cấu hình thấp. Thực tế sẽ chứng mình nhưng việc xuất hiện nhân tố mới cũng mở ra hi vọng cho những thiết bị Android, để có thể so sánh độ mượt với iOS và Windows Phone.

tinhte_android 4.png
Nguồn: XDA
180 bình luận
Chia sẻ

Xu hướng

tho nau
TÍCH CỰC
10 năm
nhân vẫn là 3.4 chứ đâu có gì mới. nếu là nhân 4. mới là mới
@tho nau cái đó là kernel ông nội. còn cái này là mã phiên dịch. vì ứng dụng android chạy trên máy áo !!

Sent from my LT26i using Tapatalk
vipcasper
TÍCH CỰC
10 năm
@tho nau
Biết nhân là gì không? Linux kernel.

https://www.kernel.org/

Hiện mới nhất là 3.12 mà driver các hãng phát triển mới chỉ ở kernel 3.4 thôi. Sắp tới là 3.8, 3.10.
ngoc1414
TÍCH CỰC
10 năm
@tho nau ko biết thì đừng có phán khiếp thế
kernel với compiler liên quan quái gì nhau
@hiepthong Uh. File apk thực chất là code XML và java thôi
@tho nau cái nhân là Linux kernel phụ thuộc vào phiên bản của nhân Linux, đâu phải là phiên bản của android, đâu phải là android 4.4 là phải xài nhân 4.4, nó là xài nhân cảu Linux kernel, bạn đang nhầm khi phân biệt giữa phiên bản hệ điều hành android với nhân của linux đấy
Ngon rùi, nhân hệ thống nên chắc có cái gì đặc biệt mới đc nhét vào
mackiller
TÍCH CỰC
10 năm
KHi nào Dalvik như một phần cứng, hơn là giả lập thì mới hi vọng tăng tốc Android. Còn phần mềm vẫn là phần mềm.
truanang
ĐẠI BÀNG
10 năm
@mackiller Hic , vấn đề mình nói là tại bạn biết ít nên bạn nhìn mọi việc đơn giản quá mức . Ngay cả khái niệm pipeline bạn hiểu cũng sai rồi , pipeline là xử lý song song nhưng khác với parallel . Vd xử lý song song bình thường nghĩa là 2 lệnh riêng biệt , mỗi core nó làm 1 cái . Pipeline nghĩa là 1 câu lệnh nó cắt ra làm nhiều phần , vd 5 phần : f1, f2, ... f5 . Vi xử lý nó sẽ xử lý f1 của câu lệnh thứ nhất , xong trong nhịp tiếp theo nó xử lý f2 của câu lệnh thứ nhất đồng thời cả f1 câu lệnh thứ 2. Đó gọi là pipeline .

Vd 1 lệnh là mov adresse 1 , adresse 2 , thực tế là ko phải 1 xung là vi xử lý chạy xong , mà nó sẽ mất khoảng 14 xung nó thực hiện 14 nhiệm vụ khác nhau mới xong câu lệnh mov đó . Thì trong 14 nhịp đó nó vẫn xử lý được tiếp các phần của câu lệnh tiếp theo nếu ko có conflict .


Còn cái kiến trúc trong android đó là nó phân ra thành các layer khác nhau , layer thấp nhất là kernel , cao hơn system , trong layer system thì nó có layer máy ảo dalvik để chạy ở layer cao hơn là android software , việc phân tầng này ko hề làm hệ thống chạy chậm đi như bạn nghĩ .Ngược lại google viết phần ra display rất tốt nếu bạn so sánh đc với cái X11 của ubuntu chậm như rùa . Ubuntu bản tiếp theo nó cũng phân tầng như vậy nhưng thay vì dùng java thì nó dùng QML .

Nếu bạn có dịp đọc cách thiết kế hệ thống DDD (domain driven design) , thì mới hiểu phải phân layer thì lập trình mới rõ ràng được , tính consistent (nhất quán) mới cao . Ko thì làm những cái phức tạp sẽ siêu rối , làm ko nổi . Cái đó ko thuộc về lập trình nữa mà phải ở cấp cao hơn mới hiểu được.

Nói qua thôi , giải thích thế này tốn sức quá , hi hi .
truanang
ĐẠI BÀNG
10 năm
@Spirit Coder Hi hi, giải thích 1 chút cũng ko sao .
@truanang
X11 chính xác ko của riêng gì Ubuntu, hiện tại gần như mọi distro có GUI đều dùng nó, tuy nhiên nó có nhiều bất cập nên hiện giờ các bác ý đang phát triển Wayland để thay thế, Canonical thì phát triển (X)Mir.
mackiller
TÍCH CỰC
10 năm
@Spirit Coder
Sai thì bảo nói sai, chứ cái kiểu phổ trương ra cho nhiều, nhưng không chính xác, hay ẩu tả thì không được đâu... Nếu ai đó đọc qua thấy người nhiều kiến thức anh ta, họ nghĩ điều đó là đúng thì quả là ... hại nhiều lắm.
vumanhtuan
ĐẠI BÀNG
10 năm
Có lẽ tối ưu giống davik turbo cho dòng chip MIPS
Đợi thực tế đi các bạn, cũng phải cải thiện được cái gì chứ 😁
clerk
ĐẠI BÀNG
10 năm
Bao giờ Android compile được app thành native code thì lúc đó mới nên so được hiệu năng với iOS. Máy ảo Dalvik quá tốn tài nguyên máy.
@clerk phần cứng đang ngày càng mạnh lên, và những tác vụ thông thường sẽ như nhau với mọi OS;
vd: Windows 8 khởi động nhanh hơn Windows XP, đó là với phần cứng thông thường; thử vác 2 em này lên máy với 2 CPU Xeon, RAM 32GB, SSD, xem có hơn là bao;

cái quan trọng là tổng thể, số tiền bỏ ra so với cái hữu ích nhận được; anh code OS tốt và anh cần phần cứng thấp, nhưng giá OS anh tính quá mắc thì cũng như không;
maxiqboy
TÍCH CỰC
10 năm
@nta139


mong muốn google tìm đc giải pháp cho vấn đề này sớm, để android thành bất khả chiến bại, mấy nhóc cuồng hết đường mà lắm mồm 😃
clerk
ĐẠI BÀNG
10 năm
Dự án này Google đã start từ năm 2011, giờ mới release
funkyandroid.com/aosp-JSS15J-KRT16M.html
Đợi cuối tháng 11, tụi CM làm cái rom cook ổn ổn, lên đời cho em Nexus 7 2013 thôi. Hy vọng lúc đó tụi Google đã ra stock rom 4.4 cho xda tinh chỉnh rồi.
cái này chuyên môn cao quá nên chịu chết
Các bố nào chưa cài mà phán như thánh đề nghị ra khỏi thread đi, ngứa mắt!
mackiller
TÍCH CỰC
10 năm
@Sr_9x LIke cho chữ ký.
tuannghia
ĐẠI BÀNG
10 năm
Hài vãi. VM = Virtual Machine mà lại bảo là ko phải giả lập. =))
clerk
ĐẠI BÀNG
10 năm
@tuannghia Thế theo bạn nó đang giả lập cái gì :-j
mackiller
TÍCH CỰC
10 năm
@clerk Nó đang giả lập cả một máy tính máy ảo khác.
vipcasper
TÍCH CỰC
10 năm
@clerk
Lớp biên dịch phần mềm, thư viện để chạy phần mềm theo đúng lớp phần cứng đang chạy. Nó nằm giữa phần mềm và phần cứng. Nó được gọi là máy ảo
mackiller
TÍCH CỰC
10 năm
@vipcasper
Ha ha... Đúng là... Gọi là phần dẻo nhá, giống như kẹo dẻo á...
CpT
TÍCH CỰC
10 năm
@mackiller Thật sự bạn có thể gọi nó là middleware bởi vì nó nằm trong middleware layer của Android đó bạn à.

Các bạn cũng chả cần tranh cãi làm gì và các bạn chỉ cần vài hiểu biết cơ bản về software dev và vô wiki đọc Dalvik VM nó làm cái gì thì sẽ hiểu được vấn đề thôi.

Bởi vì tất cả những gì các bạn đã và đang tranh cãi từ đầu tới giờ, theo mình hiểu, thì ko có liên quan gì đến những điều Dalvik VM làm trong Android OS cả.

http://en.wikipedia.org/wiki/Dalvik_(software)

Phần mình, đọc xong thì mình chả nghĩ nó sẽ đc thay bằng hardware hay 'trở thành phần cứng' trong tương lai đc đâu. Tại vì kiến trúc của Android OS nó đã như thế rồi, app framework phải dựa trên Java, cần phải có Dalvik VM hoặc thành phần tương đương. Và đây cũng là bottle neck hiện tại của Android mà Google đang từng bước tối ưu.

Dù sao cũng cám ơn các bạn tranh cãi vì làm mình hiểu được thêm vài điều giữa iOS và Android. Cách xây dựng khác nhau hoàn toàn, iOS & Android như đang chạy trên 2 đường đua hoàn toàn khác nhau chỉ có thể so sánh thằng nào 'về La Mã', đó là thị phần & người dùng, trước mà thôi, ko thể so sánh như vậy được

KM các bạn thêm tấm hình nữa
shakaro
TÍCH CỰC
10 năm
Đầu đã thông, không biết đuôi thế nào. Ý nói là nhà sản xuất có chịu cập nhật cho thiết bị của hãng không mới quan trọng.
Máy cấu hình thấp còn chạy đc mà, chắc chắn nhẹ nhàng hơn mấy nàng 2.3.6 và 4.2.2 như bây giờ.
CBDancer
TÍCH CỰC
10 năm
Nhân mới chắc cũng cải thiện được ít nhiều.
Để xem con HTC Evo 4G già khụ của mình có lên đời được OS mới hơn không :p

p/s: đọc cò men của các bác vui vãi 😁
Hy vọng GG làm cho nó ngày càng nhẹ hơn, như Chrome trên Phone thật chán
Cách nữa là cải tiến Dalvik hoặc làm 1 cái VM khác chạy ngon hơn, bạn có biết ngoài lý do write once run anywhere thì còn lý do gì khác mà người ta dùng VM + JIT ko? nếu trả lời được thì chắc bạn cũng đoán được tại sao người ta dùng Dalvik.


Thế bạn biết cái JIT trong Dalvik nó chạy khi nào, kết quả là gì ko?
mackiller
TÍCH CỰC
10 năm
@Spirit Coder
Mệt thật, JIT thực là phương thức tạo ra code trung gian, được chưa, để chạy trên phần Ảo Dalvik và phần cứng của driver... Tôi không hiểu mấy bạn đánh đố kiểu này để làm gì? Hơn thua à?

Ở đây tôi bảo tại sao cứ mãi đua tốc độ với các nền tảng khác trong khi nguồn gốc là giả quyét tốc độ của Dalvik là không biến Dalvik là một máy thực chạy thức thi lệnh thật. Có hiểu ý không? Cứ múa mãi trên cái hiểu cạn cợt của mình về các thuật ngữ mãi thế???
@mackiller
Kết quả của JIT trong Dalvik là native code bạn ah, ko phải code trung gian, cái việc tạo code trung gian là của compiler.

Edit: cái compiler ở trên mình nói là compiler để tạo ra cái bytecode cho Dalvik nhé.
maxiqboy
TÍCH CỰC
10 năm
@mackiller
Ý bác theo em chắc là tại sao Android ko làm như winphone như IOS là dùng native code lun, chứ xài máy ảo java làm chi cho thêm 1 bước ~~> chậm lag máy

Vấn đề ở chỗ đó chứ các bác kia vào khoe thuật ngữ chuyên môn cho ra vẻ hiểu biết JAVA làm chi vậy ?

mọi người cũng đâu có nhu cầu học java ở đây 😁

người dùng cần là tại sao android lại đi dùng java, dùng máy ảo để chạy app làm hao tổn tài nguyên máy móc và lag giật tưng bừng, làm bia cho mấy thằng fan cuồng IOS vào xỉa xói


Cái ubuntu for phone cũng có nói là nói ko với java hay là cái dalvik kia để giảm thiếu tối đa hiện tượng lag và ngốn cấu hình như trên các phone android,

mới là nói, thực hư thế nào thì em chưa dùng nên chưa biết :D

cái này dạo trước em cũng có nghe loáng thoáng hồi nghiên cứu android, google ko mún dùng java, nhưng mà nhân viên ko thể tạo ra một nền tảng khác java được nên lại phải dùng ~~> kiện cáo loạn xạ
ngoc1414
TÍCH CỰC
10 năm
@maxiqboy 1. bạn có thấy là phần cứng android đa dạng còn 2 cái kia thì ko không ?
2. dùng java nhưng nó chỉ là ngôn ngữ, họ dùng java để tạo thuận lợi cho dev-er thôi chứ cái DVM với JVM khác nhau.
3. Ubuntu Touch nếu bạn tìm hiểu thêm thì nó có nhiều thành phần giống Android để có thể dùng driver của Android luôn.
4. Vấn đề lag và chiếm nhiều tài nguyên chủ yếu do cái thiết kế đa nhiệm của Android gần với các OS chạy trên PC hơn là 2 cái còn lại, tất nhiên được cái này sẽ mất cái kia thôi. Vấn đề quản lý tài nguyên của Android ngày càng tốt, lag và giật ít xảy ra (chả cái nào tránh đc, mình dùng iPad 4 thỉnh thoảng thấy hơi khựng)

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019