色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

Android運(yùn)行中DVM和ART表現(xiàn)對(duì)比

大小:0.3 MB 人氣: 2017-09-25 需要積分:1

  在了解 Android 運(yùn)行時(shí)之前,我們需要了解什么是運(yùn)行時(shí)環(huán)境以及一些基本概念,即 Java 虛擬機(jī)(JVM)和 Dalvik 虛擬機(jī)(DVM)的功能。

  什么是運(yùn)行時(shí)?

  簡(jiǎn)單來說,運(yùn)行時(shí)就是一個(gè)供操作系統(tǒng)使用的系統(tǒng),它負(fù)責(zé)將你用高級(jí)語言(比如 Java)編寫的代碼轉(zhuǎn)換成 CPU/處理器能夠理解的機(jī)器碼。

  運(yùn)行時(shí)由你的程序運(yùn)行時(shí)所執(zhí)行的指令構(gòu)成,盡管本質(zhì)上它們不屬于程序代碼的任何一部分。

  CPU (或者更通用的說法電腦)只能夠理解機(jī)器語言(二進(jìn)制代碼),所以為了使程序能夠在 CPU 上運(yùn)行,就必須將它們翻譯成機(jī)器碼,這一工作由翻譯器完成。

  這里按序列出歷代翻譯器:

  1.匯編

  它直接將匯編語言翻譯成機(jī)器碼,所以它的速度非常快。

  2.編譯器

  它將源碼翻譯成匯編語言,然后再用匯編器轉(zhuǎn)換成機(jī)器碼。這種方式編譯過程很慢但是執(zhí)行速度很快。但是使用編譯器最大的問題是編譯出來的機(jī)器碼依賴于特定的平臺(tái)。換句話說,在一臺(tái)機(jī)器上可以運(yùn)行的代碼在另一臺(tái)不同的機(jī)器上可能就無法運(yùn)行。

  3.解釋器

  它在執(zhí)行程序時(shí)才翻譯代碼。由于代碼翻譯是在執(zhí)行階段才發(fā)生,所以執(zhí)行速度很慢。

  JAVA 代碼是怎么執(zhí)行的?

  為了使代碼和平臺(tái)無關(guān),JAVA開發(fā)了 JVM,即 Java 虛擬機(jī)。它為每一個(gè)平臺(tái)開發(fā)一個(gè) JVM,也就意味著 JVM 是和平臺(tái)相關(guān)的。Java 編譯器將 .java 文件轉(zhuǎn)換成 .class文件,也就是字節(jié)碼。最終將字節(jié)碼提供給 JVM,由 JVM 將它轉(zhuǎn)換成機(jī)器碼。

  這比解釋器要快但是比 C++ 編譯要慢。

  Android 代碼是怎么執(zhí)行的?

  在 Android 中,Java 類被轉(zhuǎn)換成 DEX 字節(jié)碼。DEX 字節(jié)碼通過 ART 或者 Dalvik runtime 轉(zhuǎn)換成機(jī)器碼。這里 DEX 字節(jié)碼和設(shè)備架構(gòu)無關(guān)。

  Dalvik 是一個(gè)基于 JIT(Just in time)編譯的引擎。使用 Dalvik 存在一些缺點(diǎn),所以從 Android 4.4(Kitkat)開始引入了 ART 作為運(yùn)行時(shí),從 Android 5.0(Lollipop)開始 ART 就全面取代了Dalvik。Android 7.0 向 ART 中添加了一個(gè) just-in-time(JIT)編譯器,這樣就可以在應(yīng)用運(yùn)行時(shí)持續(xù)的提高其性能。

  重點(diǎn):Dalvik 使用 JIT(Just in time)編譯而 ART 使用 AOT(Ahead of time)編譯。

  下圖描述了 Dalvik 虛擬機(jī)和 Java 虛擬機(jī)之間的差別。

  Android運(yùn)行中DVM和ART表現(xiàn)對(duì)比

  Just In Time (JIT)

  使用 Dalvik JIT 編譯器,每次應(yīng)用在運(yùn)行時(shí),它實(shí)時(shí)的將一部分 Dalvik 字節(jié)碼翻譯成機(jī)器碼。在程序的執(zhí)行過程中,更多的代碼被被編譯并緩存。由于 JIT 只翻譯一部分代碼,它消耗的更少的內(nèi)存,占用的更少的物理存儲(chǔ)空間。

  Ahead Of Time(AOT)

  ART 內(nèi)置了一個(gè) Ahead-of-Time 編譯器。在應(yīng)用的安裝期間,他就將 DEX 字節(jié)碼翻譯成機(jī)器碼并存儲(chǔ)在設(shè)備的存儲(chǔ)器上。這個(gè)過程只在將應(yīng)用安裝到設(shè)備上時(shí)發(fā)生。由于不再需要 JIT 編譯,代碼的執(zhí)行速度要快得多。

  由于 ART 直接運(yùn)行的是應(yīng)用的機(jī)器碼(native execution),它所占用的 CPU 資源要少于 使用 JIT 編譯的 Dalvik。由于占用較少的 CPU 資源也就消耗更少的電池資源。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 色悠久久久久综合欧美99| 偷偷要色偷偷| 伧理片午夜伧理片| 四虎一级片| 日韩在线av免费视久久| 欧美日韩高清一区| 欧美精品中文字幕亚洲专区 | 丝袜足控免费网站xx91| 欧美亚洲国产免费高清视频| 国产人妻777人伦精品HD| 在线精彩视频在线观看免费| 嫩草影院地址一地址二| 国产精品美女久久久网站动漫| 用震蛋调教女性下面视频| 日韩亚洲人成在线| 青草伊人久久| 十八禁啪啦啪漫画| 色婷婷激情AV精品影院| 婷婷综合久久狠狠色| 性XXXXX搡XXXXX搡景甜| 免费人成在线观看视频不卡| 美丽的姑娘BD在线观看| 国产综合18久久久久久软件| 国产香蕉视频在线观看| 高hbl双性浪荡古代| 最近免费中文字幕完整版HD | 日本黄色成年人免费观看| 日本午夜看x费免| 午夜福利电影网站鲁片大全| 欧洲videosdesrxotv| 日韩欧美高清一区| 学生精品国产在线视频| 日日做夜夜欢狠狠免费软件| 内地同志男16china16| 人妻天天爽夜夜爽三区麻豆A片| 芒果影院网站在线观看| 欧美色偷偷亚洲天堂bt| 日日干夜夜爽| 亚洲国产在线综合018| 亚洲spank男男实践网站| 午夜国产免费视频亚洲|