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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華為方舟編譯器詳細解讀 真的比安卓快嗎

454398 ? 來源:工程師吳畏 ? 2019-08-12 08:58 ? 次閱讀

8 月 9 日,華為開發者大會鴻蒙OS正式發布,這是基于微內核的全場景分布式OS。能實現模塊化解耦,對應不同設備(智慧屏、穿戴設備、車機、智能音箱手機)可彈性部署。華為消費者業務 CEO 余承東描述了華為鴻蒙 OS 的方方面面。

余承東稱,華為方舟編譯器,會通過多終端 IDE 開發環境來支撐當前的鴻蒙 OS。目前方舟編譯器支撐鴻蒙內核,“方舟編譯器能提升60%的編譯性能”,將來鴻蒙微內核能按需擴展,并希望用一個鴻蒙微內核代替全部內核。

今天,我們就聚焦華為的新貴——方舟編譯器,這個一發布就引起巨大響動的底層核心技術。方舟編譯器究竟是什么?它為什么能夠做到“青出于藍而勝于藍”,下面就讓我們帶著疑問去解讀。

01 編譯器是什么?

首先講講編譯器是什么東西吧?其實絕大多數用戶都不清楚這是什么。程序員們在寫好應用的代碼之后,在變成我們手機上安裝的應用之前,還差最后一步就是編譯。

簡單來說,編譯器就是把編程人員開發的高級語言程序,翻譯成機器可執行的機器指令,這就是編譯器。它就像一位翻譯官,是連接程序員與機器的橋梁。

由此來看,方舟編譯器面向的是開發者的,但最終受益的還是消費者。

打個比方,說計算機是汽車,那么軟件就像汽車的操控系統一樣。編譯器則是汽車發動機里最核心的汽油燃燒技術,將軟件變成計算機的動力,其編譯的效率,直接決定了用戶的使用體驗。所以了解方舟編譯器之前,我們必須得首先了解 Android 操作系統中的編譯器的運行機制。

安卓系統從2008年1.0到9.0,截至目前安卓系統大小版本超過15個。十年發展安卓手機的體驗已經今非昔比。可生活中還有很多人詬病安卓手機沒有iPhone流暢,那么安卓系統的程序是怎樣運行的?下面我們來闡述一下

Java的虛擬機的故事

Android 1.0剛發布的時候,使用的是一個叫Dalvik的虛擬機(Virtual Machine,簡稱 VM)里面集成了一個解釋器,每次用戶在安卓手機上運行APP時,就會喚醒解釋器,來給安卓的硬件解釋APP接下來要干什么。

這個問題嚴重拖了安卓手機的后腿,所以Android2.2版本引入了JIT機制。JIT比較聰明,當用戶在安卓手機運行APP時,會同時將用戶經常使用的功能編譯為機器能直接執行的機器碼,不用一句一句去翻譯。當出現不常用的功能時,再喚醒解釋器翻譯。

但是每次啟動APP都要重新編譯一次,加上Dalvik虛擬機性能比較落后,所以谷歌在Android 5.0版本將虛擬機從Dalvik替代成ART,同時把JIT的編譯器替代成AOT 。AOT相比JIT的好處,就是不用每次打開APP都需要先編譯一遍。但是,壞處是安裝應用慢和占用內存空間。

在 Android 5.0 正式采用 ART 之前,Android 采用的是解釋執行+JIT 的方式執行 Java 代碼。在這個階段的系統是“邊解釋邊執行”模式,代碼效率比較低下,當時Android給人的感覺就是卡。

目前的Android采用的是解釋執行+JIT+AOT 的模式,但并沒有擺脫一個前提,即應用在被打包成APK的時候,采用的還是Java代碼。

JNI接口調度占用額外資源

現在大部分應用都是使用Java和C/C++等多種語言混合開發而成。Java和C/C++屬于兩種不同架構的語言,為了使APP正常運行,它倆之間需要互通的接口——JNI。

這就意味著手機硬件資源要分配一部分給JNI去做調度。不僅占用了硬件資源,而且這種機制本身就效率較低。

安卓內存回收機制容易造成卡頓

當手機內存資源不夠用的時候,安卓虛擬機就會召喚GC(Garbage Collection),讓所有手機運行的Java線程全部暫停,GC機制,無法精確控制內存回收,所以性能較差的手機間歇的出現“抽搐般”的卡頓現象。

以上這幾個問題,一直影響著安卓手機的體驗。其中最主要的是Java 高級語言轉換機器能懂的語言,這一轉換過程直接導致了Android的卡頓。反觀iOS系統,直接使用Clang/LLVM來編譯出機器碼,就沒有安卓還要一個中間層,也因為如此,我們感覺iOS系統一般更流暢。

02 方舟編譯器牛在哪? “干掉”虛擬機

方舟編譯器做的就是,將Java的所有語句統統翻譯成機器碼,最后打包成APK安裝文件。方舟編譯器最大的優勢在于它繞過了虛擬機。簡單來說,方舟編譯器可以將高級語言(Java)直接變成機器碼,無需再通過 Android 系統中內置的編譯器。

總之,方舟編譯器是完全替代了語言虛擬機的靜態編譯器,從此不再需要解釋器。相比現有的編譯機制有以下明顯優勢:

1、方舟編譯器是一種靜態的編譯方式,而現有的安卓系統,運行一個應用程序首先啟動虛擬機,然后讀入應用代碼逐條解釋執行,無法做到100%做到擺脫虛擬機,這也是當前安卓陣營面臨的問題。

簡單一句話,只要是經過編譯器編譯的應用,在應用市場上架以后,用戶下載的APK 就是編譯好的了,方舟編譯的應用在開發階段就已完成了。

2、華為方舟編譯器的靜態編譯方式可將語言里的動態特性直接翻譯成機器碼,手機安裝應用程序后可全速運行程序,徹底干掉了虛擬機,極大提升了系統運行效率。

方舟編譯器對于系統在這方面的提升,官方曾這樣描述:

一、EMUI 9.1對系統主要服務System Server進行靜態編譯化,帶來了系統流暢度提升24%,系統響應性能提升44%以上的收益。

二、微博極速版實現了靜態化編譯后,流暢度提升高達60%。通過上方演示視頻來看,經過方舟編譯優化的APP,在流暢度度方面的提升很明顯。

03 新的內存垃圾回收機制

此外,方舟編譯器還帶來了新的系統垃圾回收機制。以往安卓的垃圾回收機制是集中回收,由于Java虛擬機的特點,系統會不停的地自動回收內存垃圾,保證內存不會溢出。

更要命的是,當內存低于某個標準值后,它就會自動殺掉優先級低的進程。系統會集中關閉被標記的多余進程,這就造成了隨機性的卡頓。相信大家遇到過這種情況,啟動游戲時,點按應用瞬間進入前會感覺莫名的卡頓,界面像是遲鈍了一下。

而方舟編譯器在這方面有什么不同,它的內存回收機制是隨用隨回收,回收時不需要暫停應用,而是直接回收內存垃圾,這大大提高了系統運行速度和效率。

小結:方舟編譯器的優勢,可以簡單總結為以下五個方面:

1.安卓程序編譯效果更好

2.安卓應用安裝速度更快

3.APP運行速度更快

4.系統內存垃圾隨用隨清,對手機硬件的要求降低

5.省電

04 十年造方舟,為安卓提速為真,支撐鴻蒙也為實

十年磨一劍,沒錯,華為方舟編譯器準備了十年之久。2009年,華為啟動5G基礎技術研究的同時,開始創建編譯組,第一批海內外研究人員加入。

2013年,華為推出面向基站領域的自研編譯器HCC,并正式提出編譯器框架構想。

2014年,眾多海內外專家加入華為,方舟項目正式啟動。同時,編譯器領域的頂級大佬,周志德(Fred Chow)的加入大大增強了研發實力

2016年,成立編譯器與編程語言實驗室。2019年,華為方舟編譯器正式面世!

方舟編譯器既能統一適配安卓機器語言,自然也能適配成自家系統的機器語言——鴻蒙OS,方舟編譯器為“安卓提速”為真,但能“支撐鴻蒙”也為實,它完全可稱為讓開發者從安卓到鴻蒙過渡的“諾亞方舟”。

05對外開源 構建生態

據悉,方舟編譯器也將開放給第三方合作伙伴。其后續會在 2019 年 11 月的綠盟開發者大會實現完整方舟編譯器代碼開源,讓廣大的應用開發者、手機廠商參與,共同構建開發者生態,使安卓體系變得更加完整強大。

未來方舟編譯器是否能成功,還要看后續完整生態的搭建。希望開發者積極參與進來,最終給消費者帶來更為極致的體驗。

總結:

從方舟編譯器我們就能看出華為對研發的投入,以及對未來生態搭建的規劃,或許,想要做一個操作系統并不難,比如阿里云OS,但難的是未來完整生態的構建。

無論怎么看待華為,目前,在國內也只有它有實力去干這件事情,并不只是說說而已,華為的終極目標很明顯,就是在未來搭建全方位的生態。我們期待這項技術能夠普及開來,促進Android體系更加強大,也希望華為能在未來帶給我們更多驚喜。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    216

    文章

    34479

    瀏覽量

    252166
  • 編譯器
    +關注

    關注

    1

    文章

    1636

    瀏覽量

    49174
  • 安卓
    +關注

    關注

    5

    文章

    2134

    瀏覽量

    57324
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2636

    瀏覽量

    66459
  • 方舟編譯器
    +關注

    關注

    0

    文章

    60

    瀏覽量

    226
收藏 人收藏

    評論

    相關推薦

    Triton編譯器與GPU編程的結合應用

    Triton編譯器簡介 Triton編譯器是一種針對并行計算優化的編譯器,它能夠自動將高級語言代碼轉換為針對特定硬件優化的低級代碼。Triton編譯器的核心優勢在于其能夠識別并行模式,
    的頭像 發表于 12-25 09:13 ?260次閱讀

    Triton編譯器如何提升編程效率

    在現代軟件開發中,編譯器扮演著至關重要的角色。它們不僅將高級語言代碼轉換為機器可執行的代碼,還通過各種優化技術提升程序的性能。Triton 編譯器作為一種先進的編譯器,通過多種方式提升編程效率,使得
    的頭像 發表于 12-25 09:12 ?251次閱讀

    Triton編譯器在高性能計算中的應用

    高性能計算(High-Performance Computing,HPC)是現代科學研究和工程計算中不可或缺的一部分。隨著計算需求的不斷增長,對計算資源的要求也越來越高。Triton編譯器作為一種
    的頭像 發表于 12-25 09:11 ?273次閱讀

    Triton編譯器的優化技巧

    在現代計算環境中,編譯器的性能對于軟件的運行效率至關重要。Triton 編譯器作為一個先進的編譯器框架,提供了一系列的優化技術,以確保生成的代碼既高效又適應不同的硬件架構。 1. 指令選擇
    的頭像 發表于 12-25 09:09 ?247次閱讀

    Triton編譯器的優勢與劣勢分析

    Triton編譯器作為一種新興的深度學習編譯器,具有一系列顯著的優勢,同時也存在一些潛在的劣勢。以下是對Triton編譯器優勢與劣勢的分析: 優勢 高效性能優化 : Triton編譯器
    的頭像 發表于 12-25 09:07 ?286次閱讀

    Triton編譯器在機器學習中的應用

    1. Triton編譯器概述 Triton編譯器是NVIDIA Triton推理服務平臺的一部分,它負責將深度學習模型轉換為優化的格式,以便在NVIDIA GPU上高效運行。Triton編譯器支持
    的頭像 發表于 12-24 18:13 ?410次閱讀

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言和編譯器的訪問,使得用戶可以在Python環境中
    的頭像 發表于 12-24 17:33 ?384次閱讀

    Triton編譯器與其他編譯器的比較

    Triton編譯器與其他編譯器的比較主要體現在以下幾個方面: 一、定位與目標 Triton編譯器 : 定位:專注于深度學習中最核心、最耗時的張量運算的優化。 目標:提供一個高度抽象、靈活、高效
    的頭像 發表于 12-24 17:25 ?394次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    Triton 是一個開源的編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴展和可定制的編譯器框架,允許開發者添加新的編程語言特性和優化技術
    的頭像 發表于 12-24 17:23 ?457次閱讀

    分享關于編譯器的科普

    源代碼分析工具和IDE集成。GCC被構建成一個單一的靜態編譯器,這使得它非常難以被作為API并集成到其他工具中。 GCCClang支
    的頭像 發表于 12-09 09:49 ?132次閱讀

    Keil編譯器優化方法

    我們都知道,代碼是可以通過編譯器優化的,有的時候,為了提高運行速度或者減少代碼尺寸,會開啟優化選項。
    的頭像 發表于 10-23 16:35 ?653次閱讀
    Keil<b class='flag-5'>編譯器</b>優化方法

    AI編譯器技術剖析

    隨著人工智能技術的飛速發展,AI編譯器作為一種新興的編譯技術逐漸進入人們的視野。AI編譯器不僅具備傳統編譯器的功能,如將高級語言編寫的源代碼轉換為機器可執行的代碼,還融入了人工智能技術
    的頭像 發表于 07-17 18:28 ?1673次閱讀

    人工智能編譯器與傳統編譯器的區別

    人工智能編譯器(AI編譯器)與傳統編譯器在多個方面存在顯著的差異。這些差異主要體現在設計目標、功能特性、優化策略、適用范圍以及技術復雜性等方面。以下是對兩者區別的詳細探討,旨在全面解析
    的頭像 發表于 07-17 18:19 ?1973次閱讀

    Meta發布基于Code Llama的LLM編譯器

    近日,科技巨頭Meta在其X平臺上正式宣布推出了一款革命性的LLM編譯器,這一模型家族基于Meta Code Llama構建,并融合了先進的代碼優化和編譯器功能。LLM編譯器的推出,標志著Meta在人工智能領域的又一重大突破,將
    的頭像 發表于 06-29 17:54 ?1524次閱讀

    QT開發學習筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發表于 02-18 10:02 ?1071次閱讀
    QT開發學習筆記1(安裝交叉<b class='flag-5'>編譯器</b>)
    主站蜘蛛池模板: 久久re热在线视频精69| 天堂色| 亚洲理论在线a中文字幕| 国产专区_爽死777| 永久adc视频| 欧美日韩无套内射另类| 岛国大片在线观看完整版| 无码国产精品高潮久久9| 精品国产露脸久久AV麻豆| 5g在视影讯天天5g免费观看| 日本妈妈xxxx| 果冻传媒在线观看视频| 98久久人妻无码精品系列蜜桃 | 黄小说免费看| 97色伦图片97色伦图影院久久| 日韩视频中文在线一区| 九九免费的视频| 成人无码国产AV免费看直播| 亚洲不卡视频在线观看| 龙岩综合频道| 国产成人精品自拍| 最近免费中文字幕MV在线视频3| 色情www日本欧美| 看 视频一一级毛片| 国产精品久久久久无码AV色戒 | 洗濯屋H纯肉动漫在线观看| 久久水蜜桃亚洲AV无码精品偷窥| 大学生第一次破苞疼哭了| 有人在线观看的视频吗免费| 日日撸影院在线| 久久亚洲精品永久网站| 国产黄a三级三级三级 | 视频专区亚洲欧美日韩| 久久操韩国自偷拍| 国产69精品久久久久无码麻豆| 一本大道无码AV天堂欧美| 日日摸夜夜嗷嗷叫日日拍| 妈妈的朋友5在线观看免费完整版中文| 国产高清视频免费在线观看| 97资源站超碰在线视频| 亚洲一区二区三区91|