当前位置:首页 > 每日看点

能否从技术层面客观,不带有情绪输出的评价鸿蒙HarmonyOS NEXT?

卡卷网2年前 (2024-12-04)每日看点341

别的不说,我只说代码。具体来说,我只说一说鸿蒙系统的应用开发语言ArkTS语言。

因为是门外汉,先上官网介绍:初识ArkTS语言 | 华为开发者联盟 (huawei.com)

你只用看一下官网这里面的一些截图的示例代码即可,比如:

能否从技术层面客观,不带有情绪输出的评价鸿蒙HarmonyOS NEXT?  第1张

官网的一点点代码片段

然后,作为对比,我们可以看一看与ArkTS同源的另外一门语言AssambleScript:介绍 | AssemblyScript 中文网 (nodejs.cn)

因为是门外汉,所以也是看一下网页链接里的截图示例代码即可,比如:

export function fib(n: i32): i32 { var a = 0, b = 1 if (n > 0) { while (--n) { let t = a + b a = b b = t } return b } return a }

这俩语言的语法都是C系的,极为相近。然后这两个语言的关系是这样的:JavaScript(JS)作为弱类型语言,其静态类型的超集是TypeScript(TS)语言。然后ArkTS是TS的改进优化,AssemblyScript(AS)则是TS的子集。

AS的演进方向是较为彻底的提升性能(因此其不兼容JS的绝大部分库),而ArkTS的演进方向则是在保证兼容JS生态的情况下尽可能提升性能(当然出于性能考虑,ArkTS对JS库的兼容做了约束)。

从代码介绍上看,我猜ArkTS走了一套和安卓很相近的路子(当然这和AS即WASM技术路线也很相近),只不过安卓用的是Java虚拟机,而鸿蒙用的是JavaScript生态的JIT(甚至AOT)解释器/虚拟机/编译器。

这样的话就说的通了,因为技术上确实是可以落地(有AS语言的范式可以参考,也有JS语系的解释器V8引擎可以参考),当然从具体落地来看,仍然相当考验技术实力。

之所以一上来要提AS语言,因为AS的这套模式我认为和ArkTS很相近。AS编译为.wasm文件,这是个字节码而非机器码文件,然后通过V8引擎将.wasm字节码在用户本地端编译为机器码,从而实现接近原生的性能。当然V8对.wasm的处理仍然是JIT解释,而非AOT编译,一个很重要的原因是V8对代码的优化/去优化考虑。

而鸿蒙这里,因为ArkTS是在TS强类型+静态类型的基础上改进的,所以它具备和AS类似的实现方式的可能。当然考虑到ArkTS要兼容JS生态,所以我猜ArkTS可能的实现方式有3种:

  1. ArkTS项目代码 => JS字节码 => JIT运行时(即V8引擎,性能等同于JS。这个应该已经废弃了,我只在古早的B站视频里看到有人披露)
  2. ArkTS项目代码 => 方舟字节码(类似.wasm的思路,二进制字节码文件) => JIT机器码(类似.wasm的思路,能用上ArkTS静态类型的能力,性能会比JS-V8强,宣传是“接近原生性能”)
  3. ArkTS项目代码 => 方舟字节码 => AOT机器码(安装App时执行AOT编译,则性能即为原生性能)

从我个人看B站分析视频的情况来看,之前最早是走的第1种实现。目前从官方手册来看,很可能走的第2种实现,其实性能不差了。当然我们期待能早日走到第3种实现。

为什么我会这么推测呢?主要可以看这页:ArkTS高性能编程实践-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者 (huawei.com)

这个页面里说到的性能优化建议和V8引擎的优化建议的思路非常像!然后从Array<number>建议改为Int8Array等描述来看,其实就是在向AS看齐的。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/2926.html

分享给朋友:

相关文章

电视上哪个软件可以免费看电视直播?

电视上哪个软件可以免费看电视直播?

今天给大家推荐8款免费电视端直播看剧软件,感兴趣的朋友可以下载试一试! 1、超级ITV 6.04免费看电视直播,央视卫视高清秒播,还有电影电视剧少儿体育等。 2、小鲸电视 1.3.1小鲸电视是一款智能电视应用,集成了多个内容来源,包括腾讯视…

为什么我感受不到 1500 元的手机比四五千的差?

我长期使用两千元左右的安卓机,一天接近8小时的重度手机使用者。 某天我突然想试试看传说中非常赛艇的苹果。狠了心,砸了钱。七千大样买了爱疯。 就这?什么辣鸡玩意。而且因为我一直更新软件,用了两年爱疯就卡了。并没有传说中的用四五年不卡。 用了这…

你捡过最大的漏是什么?

你捡过最大的漏是什么?

买了套二手房,软磨硬泡便宜了1个w 结果就是一屋子狼藉 原业主说反正你们要重新装修 就不收拾了 等完了你们一起收拾掉吧 落了很多柜子 电器是啥的 今天打开卧室柜子一看… 现在是去存钱的路上 有朋友知道这样存钱银行会给发大米跟油吗…

都是前端框架,为什么用 React 的人会有优越感?

都是前端框架,为什么用 React 的人会有优越感?

上家公司一直搞react,最近第一次写个vue3项目。 老板朋友来了看了下页面说:这用vue写的吧。 我:是... 老板朋友:一看就知道是vue做的。 这tm你看一眼页面就知道用的啥框架? 这感觉就是,我一直用苹果,偶尔用了下华为打电话,有…

如何做电商行业?

如何做电商行业?

“如何做电商*开网店”跟“如何找老婆”一样,没概况条件、没明确标准,就是扯犊子。 我把话题具体一点说: 具备“两三万”启动资金、掌握“选品+上架优化”基础技能,小则月入三五千、多则上万。跟摆地摊一样,有进货的钱、也不怕苦不怕累、稍微有点生意…

如何看待 Luv Letter 表示影视飓风专业性实在是让人失望?

一点儿新进展,另外以下有部分需要关注 对于统一变量的问题。这个我在对比上面有写小字解释,我在一开始使用ffmpeg来控制变量。但是发现了不少问题,比如因为遗留bug,会强制将非整数帧的素材转码为VFR导致无法正确帧间对比,因此不考虑,同时尽…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。