当前位置:首页 > 每日看点 > 正文内容

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

卡卷网1年前 (2024-12-04)每日看点245

别的不说,我只说代码。具体来说,我只说一说鸿蒙系统的应用开发语言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

分享给朋友:

相关文章

你有突破100个粉丝了吗?

你有突破100个粉丝了吗?

100粉已经过啦!说说怎么过的吧,最开始疯狂的写回答,写想法,关注人数在50几以下持续有两周多,每天都关注变化,都是个位数增长,后来干脆不看了。到第三周时突然一周增长了100多人,一天十几人,想想应该归功于多互动,给他人点赞评论,让自己曝光...

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在讨论服务网格之前,先理解一下为什么我们需要它。现代微服务架构意味着将应用拆分为多个小型、独立的服务,这些服务可以独立开发、部署和扩展。然而,服务之间的通信和管理成了巨大的挑战,例如如何保证安全的通信、负载均衡、监控与可观测性等。服务网格...

夸克浏览器受欢迎的原因是什么?

夸克浏览器受欢迎的原因是什么?

这是可以说的嘛~哈哈,它比较吸引我的几点是:安全无广、页面简洁、功能丰富、反应速度快......首页页面支持自定义,喜欢什么样子都可以自己调整,没有花里胡哨的各种资讯推送,热搜日报整理归纳好,想看再点开查看,看着舒适度直接拉满!实用日常工具...

鸿蒙到底是不是安卓套壳?

鸿蒙到底是不是安卓套壳?

把它是不是套壳先放在一边吧。我讲一个事情,大家自己判断。华为有一个应用,叫手机管家。这个手机管家对一些系统底层设置有影响:比如华为从 EMUI 9 开始不允许将第三方启动器设置为默认启动器,依靠的就是这个手机管家。为什么这么说呢?在网上搜索...

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

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

常微分方程的理论对偏微分方程的研究有没有帮助?

常微分方程的理论对偏微分方程的研究有没有帮助?

之前看到过一句话,好像是 Bourgain 说的,大意是做 ode 的做到深处就到了 pde,做 pde 的做到深处就到了 ode,ode 和 pde 最后是相通的。以我目前有限的知识,只知道下面两个方向:1. Hamilton 系统在现代...

发表评论

访客

看不清,换一张

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