华为不做黑寡妇,开源编译器,与友商共建安卓性能

640?wx_fmt=jpeg


今天我的一个老哥开了头条号,第一次发文章,我觉得不错,拿来用用,给大家看看华为技术总工的文采。这位总工潜伏在我的微信群里很少说话,大家一定要有这个想法,就是最低调的那个人,真的非常牛逼。


2 正文

“黑寡妇”是一种具有强烈神经毒素的蜘蛛,其名字源于交配后的雄蛛会被雌蛛吃掉。是华为任老板提出,希望华为改变现状,开放共赢,给合作伙伴让渡利益。

640?wx_fmt=jpeg

P30pro

华为在11日的P30国行发布会上,宣布了安卓应用的方舟编译器,并且面对业界开源,这无疑是安卓手机行业的一颗重磅炸弹。众所周知,安卓应用基于java开发,而java开发的安卓应用存在边解释边执行的天然缺陷,影响了安卓应用执行效率的提升。

640?wx_fmt=jpeg

方舟编译器

什么是边解释边执行,通过一个通俗的例子讲解下,你可以理解为中美两国领导人在交谈,两国领导只会讲中文和英文,那就需要翻译人员将中英文互译,安卓应用比作中方领导只会中文,手机CPU比作美方领导只懂英语,那手机CPU要执行安卓应用就需要一个翻译将安卓应用翻译为手机CPU理解的语言才能执行。

具体到实际的环境中,安卓应用是高级语言编码的,如果要比较a和b的值,只需要if(a == b)一句程序,容易编写,对人是友好的,但是手机CPU是ARM内核,只能识别ARM指令,如果要比较a和b的值,首先要将a,b两个值装载到寄存器,然后再用比较指令比较,手机CPU看到的语句是mov reg1,a ;mov reg2,b; cmp reg1,reg2;总共3条指令。这两种语言之间的翻译和转换必然会消耗手机性能。如果事先就将安卓应用翻译为ARM指令,这样就略去了翻译过程,可以直接执行,自然就能提升应用的流畅程度,也降低手机CPU的开销,进一步降低功耗提升手机续航。

640?wx_fmt=jpeg

高级语言

640?wx_fmt=jpeg

机器指令

3

当然安卓经过了9个大版本的迭代,安卓虚拟机已经针对边解释和边执行的低效率做了部分执行前转机器码的优化,但还是无法与直接编译为机器码的应用效率媲美。华为开源的方舟编译器应该是更进一步优化翻译这一步,减少解释在应用执行中的时间占比来提升流畅程度。

方舟作为编译器层面优化,非常便于友商集成,可以说华为是站在整个安卓业界的高度,将自身投入数千亿研发的部分成果共享,将利益让渡给业界,作为民营企业,不论其最终的意图如何,只是这份魄力就值得称赞。


完,各位共勉~

640?wx_fmt=gif

640?wx_fmt=jpeg



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点击链接如何直接跳转到相对应的聊天窗口

解决这个问题的步骤如下&#xff1a; <a target"_blank" href"http://wpa.qq.com/msgrd?v3&uin3237465337&siteqq&menuyes">一、登陆腾讯官方网站&#xff1a;http://wp.qq.com/ 二、登陆之后&#xff0c;点“设置”&#xff0c;按下图…

哈夫曼树编码与译码(完整C/C++实现代码)

哈夫曼编码的设计与应用 问题需求分析 用哈夫曼编码(Huffman Coding)&#xff0c;又称霍夫曼编码&#xff0c;是一种编码方式&#xff0c;哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法&#xff0c;该方法完全依据字符出现概率来构造异字头的平均长…

移动应用开发实例_物联网改变移动应用开发的4种方式

图片来源&#xff1a;pixabay.com来源&#xff1a;物联之家网(iothome.com)转载请注明来源&#xff01;物联网改变了移动应用程序的开发格局。那么&#xff0c;为物联网开发移动应用程序有何不同&#xff1f;物联网与移动应用程序开发齐头并进。物联网改变了人类与机器的互动方…

谁都能看懂的网络模型知识

&#xff11;.网络是我们做嵌入式 避无可避的知识点&#xff0c;但是网络的层次很多&#xff0c;很多时候我们根本理解不了其中的层次和作用&#xff0c;今天跟我们公司的 X 总聊到这个&#xff0c;给我普及了一些知识&#xff0c;我觉得非常有用&#xff0c;分享给大家。最近事…

Java微信公众平台获取签名

如果想使用微信的JSSDK&#xff0c;需要注册公众号和获取签名&#xff0c;Java代码实现如附件&#xff1a; 使用的是servlet&#xff0c;access_token和ticket缓存在application作用域里 附件为源代码&#xff1a;wx.zip转载于:https://www.cnblogs.com/yrcn/p/6831808.html

常用排序算法以及算法性能测试(完整C/C++代码实现)

排序算法性能的比较 注: 由于只是测试算法性能, 所以不会对排序算法做深入讲解, 在随后的时间将会推出排序的详细讲解 问题需求分析 排序算法经过了很长时间的演变&#xff0c;产生了很多种不同的方法。每种算法主要针对不同的数列进行排序&#xff0c;这些排序算法具有各自…

jquery点击事件传值加载页面_jQuery添加options点击事件并传值

var formStr "{supplierId:供应链企业|%-jm-sprt-%|93794498-3}";$.ajax({type : "post",dataType : "json",cache : false,url : "../../../webservice/gmall.json", // 提交到一般处理程序请求数据data :"businessCode6100100…

我就随便BB一下

&#xff11;.如果我开始写文章的时候&#xff0c;停顿了几分钟&#xff0c;那结果应该很明显&#xff0c;这一定是一篇比较垃圾的文章&#xff0c;没什么东西值得看&#xff0c;所以我把之前的删除了&#xff0c;重新开头来写&#xff0c;我认为&#xff0c;一个好的开头一定是…

JS代码优化工具Prepack

最近&#xff0c;Facebook 发布 Prepack :一个优化 JavaScript 源代码的工具&#xff0c;实际上它是一个 JavaScript 部分求值器(Partvaluator)&#xff0c;可在编译时执行原本在运行时的计算过程&#xff0c;并通过重写 JavaScript 代码来提高其执行效率。(西安尚学堂&#xf…

读Java并发编程实践记录_原子性_锁_同步容器详解_任务执行

原子性: 单独的,不可分割的操作 不要使用过期状态值来决策当下的状态, 一定要先检查再执行(不检查, 将引发数据修改,丢失)避免延迟初始化(懒加载: 先查看对象 null, 然后new), 有可能查看对象状态的时候, 对象已经new出来, 只不过还没将对象赋给引用避免复合操作, 例: count;…

和我一起探索嵌入式

&#xff11;.本文为微信群管理员小磊投稿作品&#xff0c;作者计划编写一系列文章&#xff0c;该篇为第一篇&#xff0c;如果有做STM32的同学这将是一个非常好的系列教程&#xff0c;欢迎关注。我15年刚建立了一个BLE的QQ群&#xff0c;很有幸认识了小磊同学&#xff0c;一个非…

经纬度坐标系转东北天_大地坐标系(WGS-84)、地心地固坐标系(ECEF)与东北天坐标系(ENU)的相互转换C语言代码分享...

//ECEF ---> WGS84//pcg为WGS-84坐标系结构体指针&#xff0c;pcc为ECEF坐标系结构体指针void ECEFToWGS(PWGS pcg, PECEF pcc){double B0, R, N;double B_, L_;double X pcc->x;double Y pcc->y;double Z pcc->z;R sqrt(X * X Y * Y);B0 atan2(Z, R);while …

2.简易的登录页面(表单验证)(HTML+JavaScript+Jquery)

//HTML部分 <!DOCTYPE html><html> <head> <meta charset"UTF-8"> <title>登录页面</title> <link rel"stylesheet" type"text/css" href"css/login.css"/> <s…

Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O

I/O基本概念 缓冲区基础 缓冲区是I/O的基础, 进程使用read(), write()将数据读出/写入从缓冲区中; 当缓冲区写满, 内核向磁盘发出指令, 将缓冲区中数据写入磁盘中(这一步不需要CPU), 当磁盘控制器将缓冲区装满, 内核将缓冲区数据拷贝到进程中指定的缓冲区; 操作如下图: 当中…

跟一个大佬前辈交流了一下

&#xff11;.最近&#xff0c;跟我们公司的测试总监聊天&#xff0c;我随便问了下他几个问题&#xff0c;他也给出了答案&#xff0c;在这里随便聊下&#xff0c;希望给大家的职业生涯中有一些借鉴的作用。也能给新入职场的同学一些方向和指引。2.先介绍下这个技术总监&#x…

python获取目录树_Python读取文件目录树——os.walk

os.walk是Python的内置函数用来遍历文件目录树。[python]import osrootDir d:\assafor dirName, subdirList, fileList in os.walk(rootDir):print(Folder: %s % dirName)for fname in fileList:print(t%s % fname)import osrootDir d:\assafor dirName, subdirList, fileLis…

LINQ简记(1):基本语法

关于LINQ&#xff08;语言集成查询&#xff09;是.NET 3.5和Visual Studio 2008以上版本中引入的一种有趣的全新概念&#xff0c;语言版本有VB和C#&#xff0c;由于C#与.NET平台结合最为紧密&#xff0c;也是MS当初首推的语言&#xff0c;因此&#xff0c;本系列文章的示例代码…

我认识的一位前辈~

&#xff11;.我最近认识了一个老前辈&#xff0c;关注了我的公众号加了我的好友认识的&#xff0c;我想介绍一下这位前辈&#xff0c;不是因为他有多成功&#xff0c;也不是因为他给了我很多钱&#xff0c;我觉得他是一个在平常不过的人了&#xff0c;因为太过于平凡的思考方式…

软件测试缺陷等级划分_缺陷等级的各种划分方法 - 测试新客~~小懒~~ - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

《缺陷等级标准》缺陷严重级别定义:o 最高级--导致运行中断(应用程序崩溃),预期的功能没有得到实现,测试工作无法继续进行等.o 紧急---事件非常重要,并且需要马上给予关注.o 高级---事件是重要的,并且应该在紧急的事件处理之后尽快得到解决.o 中级---事件是重要的,但是由于解决…

机器学习_决策树_ID3算法_C4.5算法_CART算法及各个算法Python实现

下面的有些叙述基于我个人理解, 可能与专业书籍描述不同, 但是最终都是表达同一个意思, 如果有不同意见的小伙伴, 请在评论区留言, 我不胜感激. 参考: 周志华-机器学习 https://blog.csdn.net/xiaohukun/article/details/78112917 https://blog.csdn.net/fuqiuai/article/d…