HDC技术分论坛:ArkCompiler(方舟编译器)原理解析

HarmonyOS实战开发:方舟编译器运行指南-ArkCompiler 上述编译命令为release版本,编译debug版本需增加编译选项:--gn-args is_debug=true。 阅读详情

作者:xianyuqiang 编译器首席架构师

ArkCompiler(方舟编译器)是组件化、可配置的多语言编译和运行平台,它既能支撑单一语言运行环境,也能支撑多种语言组合的运行环境。它目前主要支持的语言是JavaScript、TypeScript和Java。

一、概述


HarmonyOS的设计目标,是成为打通手机、PC、平板、电视、车机和智能穿戴等多种设备的统一操作系统。

图1 多设备互联

其应用开发有多编程语言、多范式的支持需求,其中高级编程语言包括JavaScript、TypeScript、Java等,开发范式包括声明式UI范式、分布式编程范式。

我们需要相应的编译器和运行时来支撑这些高级应用编程语言的高效开发、部署和运行。使应用开发者能使用同一套开发框架实现一次开发多端部署运行,并且让使用HarmonyOS设备的用户,能获得统一的用户体验。于是,ArkCompiler应运而生。

1. 目标

ArkCompiler是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,其设计目标是提供一个语言可插拔、组件可配置的多语言编译器运行时。

  • 语言可插拔:设计架构上支持多种语言接入,ArkCompiler有能力提供具有高效执行性能且具有跨语言优势的多语言运行时,也可以在小设备上提供高效轻量的单一语言运行时。
  • 组件可配置:ArkCompiler具有丰富的编译器运行时组件系统。通过定制化配置编译运行时的语言和组件,以支持手机、PC、平板、电视、汽车和智能穿戴等多种设备上不同的性能和内存需求。


2. 架构

如图2所示,ArkCompiler包含编译器、工具链、运行时等关键部件。ArkCompiler工具链实现对应语言的前端编译器,将前端开发框架的高级语言编译成统一的字节码/二进制文件。根据不同的应用场景,通过ArkCompiler运行时解释器解释执行字节码文件或JIT/AOT编译器编译执行对应体系架构的优化机器码,从而提升运行效率和启动性能。

图2 ArkCompiler运行原理

下面,本文将从前端编译器,运行时展开介绍。

二、前端编译器


前端编译器是高级语言通往语言运行时的桥梁,它按照语言规范,将编程语言表达的语义翻译为运行时能够理解的介质,在ArkCompiler解决方案里,这体现为ArkCompiler字节码。即图3中的ArkCompiler Bytecode(简称abc)。部分语言,也支持通过ArkCompiler的AOT Compiler组件直接将字节码编译成对应体系架构的优化机器码。

图3 ArkCompiler前端

1. 前端编译器功能

在需要支持多种语言的ArkCompiler中,前端编译器的主要作用是在Host侧把源码生成字节码文件,这样的优点:

  • 利用Host强大的计算能力,能够在运行前做更多更复杂的算法优化,减少运行时的工作,提高运行效率。
  • 相比常见的JavaScript运行时,可以把端侧的编译解析过程提前到发布前,提升程序的启动性能。

图4 JavaScript运行流程

编译优化

ArkCompiler提供对TypeScript(TS)的原生支持。在前端编译TS源码时,会利用TS的显式类型声明,应用类型推导进行类型优化,并且将推导出的类型信息通过字节码文件保留至运行时,由此运行时可以直接利用类型信息执行快速路径。

此外,静态的类型分析和推导也使得TS AOT (Ahead of Time) Compiler成为可能,静态分析得到的类型信息帮助AOT Compiler直接编译生成高质量的机器码,使得TS源码可以直接以机器码形式运行,进一步提升运行性能。

图5 编译优化

2. ArkCompiler字节码

ArkCompiler字节码(ArkCompiler Bytecode)是运行时解释器能够解析运行的一种硬件和平台无关的中间表现形式,以紧凑、可扩展、多语言支持作为设计目标。屏蔽设备的差异,支持应用的跨设备分发、部署和运行。ArkCompiler采用的是基于寄存器的字节码格式。每个寄存器的宽度为64位,最多支持65536个寄存器。

(1)寄存器

ArkCompiler寄存器要求能够放置对象引用和基本类型,宽度采用64位。寄存器的作用域是以函数栈帧为范围。在字节码指令编码中,寄存器索引支持4位、8位以及16位的变长编码,在支持方法内不同数量范围的寄存器寻址的同时减小字节码尺寸。

(2)累加寄存器

累加寄存器,俗称累加器,是一个特殊的寄存器,被指令隐含使用。使用累加器的主要目的是在不损失性能的前提下改善指令编码密度。在ArkCompiler字节码中,上一条指令利用累加器作为结果输出,下一条指令将此累加器作为输入,可以有效改善指令密度,减小字节码的尺寸。同时,通过在生成字节码阶段的数据流及控制流分析和优化,前端编译器可以有效消除冗余的累加器load和store操作。

(3)基本类型支持

ArkCompiler字节码提供对32位(i32)和64位(i64)整型数值的寄存器操作支持,8位和16位数值通过扩展到32位来模拟。支持对IEEE-754双精度浮点f64值的寄存器的操作,f32数据类型(IEEE-754单精度)也通过转换为f64值进行模拟。基本数据类型不需要虚拟机进行记录、跟踪和推导,而是通过操作不同基本数据类型的专用字节码进行表示,包括整数值的符号性。为了更有效地利用字节码的指令空间,设计中对高频使用的数据类型和操作引入更多的专用字节码,而对低频使用的数据类型和操作采用更通用的字节码。

(4)语言相关类型支持

ArkCompiler根据其执行的语言支持层次化的类型系统。这样,创建或者从常量池加载的字符串、数组、异常对象等,都是含有相应层次关系的、和具体语言规范相匹配的数据对象。

(5)动态类型语言支持

为支持类似JS/TS的动态类型语言,ArkCompiler通过特殊的标记值("Any")表示动态类型值,其包装了值本身和相应的类型信息(包括基本类型和对象引用类型数据)。虚拟寄存器的宽度可以容纳“Any”值。同时,在动态类型语言代码的执行上下文中,也可能使用到包含类型检查指令在内的静态确定类型指令序列,以表示动态类型相关语义。

三、ArkCompiler运行时


ArkCompiler运行时,如图6所示,被分为了核心运行时(Core Runtime)和各自语言独立的运行时插件(Runtime Plugin)。

核心运行时主要由运行时的公共核心组件构成,包含定义字节码格式和行为的Public ISA模块,对接系统调用的ArkCompiler Base Platform模块, 支持Debugger、Profiler等工具的Common Tool模块和承载字节码文件处理的ArkCompiler File模块等。也提供了可选的语言无关的解释器、内存管理、编译器和并发等基础设施组件。

各语言运行时插件则包含各语言特有的特性实现以及标准库来支撑语言的运行行为符合对应的语言规范,由各语言按需定制。

图6 运行时框架

1. 执行引擎

ArkCompiler运行时执行引擎有多种组件,包括解释器、JIT编译器和AOT编译器,如图7所示。

图7 执行引擎结构

(1)解释器

解释器可直接运行前端编译器输出的字节码。

(2)JIT Compiler

JIT编译器一般需要运行时执行代码一段时间,Profiler生成了profiling数据之后,根据profiling数据即时编译生成高质量的机器码(上图Optimized Code II)来运行。(JIT可以根据代码执行情况实时编译生成最优机器指令)

(3)AOT Compiler

AOT编译器则是在运行前根据静态信息直接编译生成高质量的目标机器码(上图Optimized Code I)在设备上运行,PGO(Profile Guided Optimization)配置文件可以作为AOT Compiler的输入之一,给AOT Compiler一些指示,比如编译的范围以及编译某个方法时使用哪些优化技术。通常这种PGO配置文件由在同等规格的设备上经过运行时profiling或者大数据分析生成。

无论是JIT 编译器生成的优化代码,还是AOT编译器生成的优化代码,通常都是在一定优化假设或者优化推断的前提下生成的。如果这个前提在运行时不成立,则需要进行Deopt(逆优化),回退到解释器执行,这种情况一般较少发生。

2. 定制化需求

各个执行引擎的性能如图8所示:

图8 各执行引擎的性能对比

ArkCompiler运行时通过不同执行模式的按需组合,支持多种设备不同的定制化需求。

  • 在低端IOT设备上,ArkCompiler执行引擎支持纯解释器的执行模式,以满足小设备的内存限制条件;
  • 在高端设备上,ArkCompiler执行引擎支持解释器配合AOT编译器以及JIT编译器的模式运行,对相当部分代码使用AOT编译器编译,使得程序一开始就可以运行在高质量的优化代码上,获得最好的执行性能;
  • 在其它设备上,则根据设备的硬件条件限制来选择策略,设定高频使用需要AOT编译的代码范围,其它代码则依靠解释器配合JIT Compiler运行,使得应用执行性能能够得到最大化。


为了提升解释执行性能,在特定的体系架构下,解释器约定了将解释执行上下文中某些频繁使用的数据放在对应的物理寄存器中,比如在Arm64架构下,上下文中当前字节码指令地址、累加器值、解释器栈帧、指令映射表、当前线程对象等,直接放在固定的寄存器上,避免了在栈上频繁的加载和写入操作。

3. 并发

复杂移动应用的开发和运行对并发有较强的需求。ArkCompiler运行时除了提供标准的“Java多线程编程”和“运行支持”之外,也提供响应式的Actor并发编程模型支持。此模型下执行体之间不共享任何数据,通过消息机制进行通信。当前,业界的一些Actor并发模型,例如传统JS引擎的web-worker实现,有启动速度慢、内存占用高等缺陷。

为了利用设备的多核能力获得更好的性能提升,在Actor内存隔离模型的基础上,ArkCompiler运行时通过共享Actor实例中的不可变或者不易变的对象、内建代码块、方法字节码等,提升Actor的启动性能和节省内存开销,达到实现轻量级Actor并发模型的目标。

图9 轻量级Actor实现

4. 跨语言优化

HarmonyOS应用在某些情况下实际上是由多种语言的代码组成的。例如对HarmonyOS JS/TS应用,有一些系统库、框架和应用依赖的部分能力的实现使用了C/C++和Java语言。HarmonyOS开发框架也提供了JS/TS与C/C++交互的JS NAPI以及JS/TS与Java交互的Channel机制。考虑不同语言之间的交互场景的开发和运行效率需求,ArkCompiler和开发框架联合设计,提供了对应的优化机制。

(1)JS/TS与C/C++交互

在TS 版本的操作系统平台API实现中,通常需要面临C/C++代码访问和操作TS对象的场景。对这个业务场景,ArkCompiler可以根据TS源码的class声明和运行时约定,生成包含TS对象布局描述的C/C++头文件,以及操作这些TS对象的C/C++实现库。在C/C++代码中,通过包含TS对象描述头文件以及链接对应实现库,实现直接操作TS对象的效果。需要说明的是,由于TS类型或其内在布局并非总是固定不变的,因此在TS对象操作的代码实现中,会插入类型检查,如果对象类型或布局在运行时发生变化,则回退执行通用的慢速路径。

图10 跨语言交互

(2)JS/TS与Java交互

HarmonyOS中有一些应用所需的能力是通过系统、框架或应用的Java库提供的。因此在HarmonyOS应用中,也存在较多JS/TS代码与Java代码交互的场景。常见的案例中,由于JS/TS代码和Java代码有各自独立的运行环境,相互之间对于对方的数据表示、调用约定都是不可知的,所以JS/TS与Java的数据交互通常需要经过标准的JSON序列化和反序列化流程,以及经由Native层桥接的相互调用。这造成在一些场景中开销较大,影响用户体验。

ArkCompiler利用同时支持多语言的优势,运行时具备不同语言的数据表示、对象布局、函数调用约定等信息,这使得跨语言之间的直接数据访问、对象操作和方法调用成为可能,同时Java代码提供的更多确定的类型信息也成为JS/TS类型推导的额外输入,利于对JS/TS的编译优化。另一方面,这也使我们能为开发者提供一个更简化的多语言编程模型,减少需要额外手工编写的业务无关的跨语言交互代码工作量。

图11 简化的多语言编程模型

四、总结


HarmonyOS所支持的IoT时代下,结合应用生态、开发体验和用户体验等方面的需求, ArkCompiler与硬件、操作系统、开发框架、编程语言协同设计,在多语言统一编译运行和多设备支持的基础上,实现对HarmonyOS应用在开发和运行效率等方面的提升。

未来,ArkCompiler在持续优化基础体验的同时,更会进一步结合HarmonyOS万物互联的需求,在跨端迁移、多端协同等创新场景,从编译器和运行时等方面提供底层的解决方案和优化机制,提升分布式应用的开发和运行体验。

HarmonyOS实战开发-方舟运行时使用指南 方舟编译器(ArkCompiler)是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编译运行时平台。 阅读详情

相关推荐

鸿蒙Harmony开发:方舟编译器运行时使用指南

方舟编译器(ArkCompiler)是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编译运行时平台。

DMZDAMS的博客 1692

2024年最全方舟编译器最新技术细节(1),安卓开发面试考啥

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84563987的博客 1301

HDC技术洞察:ArkCompiler(方舟编译器)如何重塑HarmonyOS多语言开发体验

本文深入探讨了ArkCompiler(方舟编译器)如何优化HarmonyOS的多语言开发体验。通过AOT编译、语言插件机制和组件化设计,ArkCompiler显著提升了应用启动速度、降低了内存占用,并简化了多语言调试流程。文章还分享了TypeScript优化技巧和跨语言调优实战经验,为开发者提供了高效利用ArkCompiler的实用指南。

weixin_29698641的博客 218

在HarmonyOS上使用方舟编译器

在探讨鸿蒙操作系统(HarmonyOS)时,不可避免地会涉及到方舟编译器(ArkCompiler),这是华为为提升应用性能和开发效率而推出的一个重要工具。方舟编译器是HarmonyOS生态系统中的核心组件之一,它通过将高级语言代码直接编译成本地机器码,而不是依赖于虚拟机运行时解释执行,从而大幅提升了应用程序的启动速度和运行效率。对于开发者来说,理解并掌握如何使用方舟编译器来优化其应用程序至关重要。

qq_40698086的博客 1325

鸿蒙操作系统内核架构与分布式设计原理

操作系统架构是构建稳定、可扩展、跨设备协同系统的基石。鸿蒙(HarmonyOS)作为面向全场景的实时分布式操作系统,其核心在于分层解耦的运行时态架构与混合微内核设计原理。它通过Capability权限模型实现动态能力裁剪与安全隔离,依托DSoftBus软总线和分布式调度器达成低延迟设备协同,同时以ArkTS运行时契约和HDF硬件抽象层支撑确定性性能与硬件兼容性。这些技术价值广泛应用于智能终端、车载系统、工业控制及IoT边缘设备等对实时性、安全性与多端一致性要求严苛的工程场景。本书正是深入理解鸿蒙内核机制与分

weixin_34314962的博客 369

OpenHarmony源码树解析:从设备树到内核构建的实用指南

开源操作系统的源码组织方式直接影响开发者的适配效率与工程落地路径。OpenHarmony采用面向多设备、多形态的分布式架构,将芯片层、板卡层、产品层代码严格分离,这种分层设计在支撑复杂硬件生态的同时,也带来了认知门槛。理解源码树中device、vendor、board的协作关系,是进行板级适配和系统裁剪的前提。以RK3568开发板为例,设备树(Device Tree)的选择与编译直接决定内核能否正常启动,而内核配置的裁剪与镜像打包则关系到产物体积和性能。对于希望在x86环境尝试OpenHarmony的开发者

weixin_34152820的博客 416

HDC技术分论坛:HarmonyOS新一代UI框架的全面解读

作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0、多语言跨平台编译器ArkCompiler 3.0、跨端开发工具DevEco Studio3.0,以及基于TS/JS语言的API 7,全面提升开发者体验。 本期,我们要为大家重点介绍HarmonyOS新一代声明式UI框架ArkUI 3.0。 目录 一、UI编程框架 二、ArkUI框架的演进 三、ArkUI 3.0的关键特性 四、结束语 一、U

HarmonyOSDev的博客 1970

Cocos2d-x游戏引擎与HarmonyOS Next融合开发实战:JSB桥接与NAPI适配

跨平台游戏开发中,游戏引擎与原生操作系统的深度集成是提升应用性能和用户体验的关键。其核心原理在于通过桥接技术实现不同运行时环境间的通信,例如JavaScript引擎与原生模块的交互。这项技术的价值在于能够复用成熟的游戏代码资产,同时充分利用目标操作系统的原生特性与性能优势。在鸿蒙生态的应用场景下,开发者常面临将基于Cocos2d-x和SpiderMonkey引擎的现有游戏项目迁移至HarmonyOS Next的挑战,这需要构建高效的JSB-Ark桥接层,并利用NAPI机制实现ArkTS与C++核心逻辑的无缝

weixin_33720078的博客 496

HarmonyOS 深度解析:从微内核到 ArkTS 工程实战

如果你对鸿蒙的认知还停留在"华为做了个安卓替代品"的阶段,那大概率会低估它的工程价值。HarmonyOS NEXT(5.0,2024 年 10 月发布)是一个真正的分水岭。在此之前,鸿蒙走的是"双轨并行"路线——富设备上保留 Linux 内核和 AOSP 兼容层,让 Android 应用能直接跑,先活下来;IoT 设备上用自研的 LiteOS 和鸿蒙微内核验证分布式架构。这套打法的代价是技术债:两套内核、两套应用框架、兼容层的性能损耗和长期维护成本。

世界那么大,我想去看看~【随心更新,看世界去了😄】 850

方舟编译器:核心组件详解与应用

htmltable {th, td {th {pre {简介:华为的方舟编译器旨在提升Android应用性能,通过直接编译Java等语言代码为机器码,加快运行速度,支持优化和全语言编译。其核心组件包括编译器、运行时库、工具链和开发者工具,以及一键安装脚本,简化了开发流程。此外,方舟编译器还包含性能分析器、调试器等,以便更好地理解和优化代码性能,支持多版本Android系统,并鼓励社区参与其开源项目。

weixin_42124497的博客 1211

带隙基准电路实战:温度补偿与流片调优全解析

带隙基准(BGR)是模拟芯片中实现高精度、低温漂电压参考的核心电路,其本质是利用硅材料禁带宽度的物理稳定性,通过PTAT(正温度系数)与CTAT(负温度系数)电压的加权叠加抵消温度影响。原理上需兼顾一阶线性补偿与二阶曲率校正,技术价值在于支撑ADC/DAC/LDO等关键模块的精度与可靠性。典型应用场景涵盖车规级MCU、工业传感器和高精度电源管理芯片。工程落地难点集中于工艺偏差、运放失调、寄生效应及版图热电耦合——这正是‘带隙基准设计’与‘带隙基准调优’的根本分野。本文聚焦真实流片经验,深入拆解Widlar架

weixin_42628280的博客 254

鸿蒙SDK 26重大升级!102个Kit、8万+API全面开放,Agent智能体时代来了

华为在HDC2026发布HarmonyOS SDK 26重大升级,开放102个Kit和8万+API,支持1100万开发者。核心升级包括:分布式互联优化,跨设备延迟降至8ms;推出Agent智能体框架,40行代码即可嵌入智能对话;空间计算平民化,普通手机实现3D重建;性能提升35%,安全新增AI反诈功能。此次升级标志着鸿蒙从"可用"到"智慧"的跨越,推动"服务找人"的智能体验。开发者可便捷接入Agent、3D重建等前沿能力,共建鸿蒙生态。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 492

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1139

鸿蒙NEXT与Flutter混合开发:硬件选型与性能优化全指南

跨平台开发中,硬件性能直接影响开发效率与体验。理解CPU多核编译、内存并发管理、存储I/O速度等基本原理,是构建高效开发环境的基础。对于鸿蒙NEXT与Flutter这类资源密集型技术栈,合理的硬件配置能显著提升编译速度、模拟器流畅度和多任务处理能力。本文聚焦开发机选型,从CPU、内存、硬盘到GPU进行需求拆解,并结合模拟器卡顿、内存不足等常见痛点,提供从笔记本到台式机的实战配置方案与优化建议,帮助开发者规避环境瓶颈,将精力聚焦于业务逻辑与架构设计。

weixin_30820077的博客 557

别再只跑Demo了!用MovieLens数据集完整复现一个电影推荐系统(Python/Pandas实战)

本文详细介绍了如何利用MovieLens数据集从零构建一个完整的电影推荐系统,涵盖数据清洗、特征工程、推荐算法实现(协同过滤和矩阵分解)以及Web服务部署的全流程。通过Python和Pandas实战,读者可以掌握推荐系统的核心技术和生产环境部署技巧,不再局限于简单的Demo运行。

weixin_29062865的博客 150

生成式引擎优化(GEO)的概念与技术路径

生成式引擎优化(GEO)是针对生成式AI引擎的新型优化策略,旨在提升内容在AI搜索与问答平台中的可见性和可信度。与传统SEO相比,GEO更注重语义理解、知识图谱和多模态生成等技术,通过优化内容的结构化和平台适配性,使品牌信息在生成式AI中更易被采纳和呈现。其核心技术包括语义理解、向量数据库和实时反馈优化等,应用于品牌传播、智能客服和个性化推荐等领域。随着AI技术发展,GEO将向智能化、自动化方向演进,成为内容优化的重要工具。

Baixue5209的博客 1048

华为鸿蒙系统HarmonyOS学习之十四:方舟编译器

华为鸿蒙系统HarmonyOS学习之十四:方舟编译器

jyl_sh的专栏 1万+

如何在 UniApp 中接入讯飞语音听写功能 文末附vue3+vue2完整代码

在开发过程中,我遇到了讯飞接口返回空数据的问题。通过仔细检查传送的每一帧数据,我发现问题出在第一帧的配置信息以及 Base64 数据的切片。确保每一帧的数据正确且符合接口要求,问题就能够得到解决。希望这个过程能帮助你在项目中顺利对接讯飞语音识别。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 997

安装与配置方舟编译器

方舟编译器是华为推出的一种静态编译器,它不同于传统的JIT(Just-In-Time)编译模式,采用AOT(Ahead-Of-Time)方式,在应用安装阶段就完成了编译过程,这可以显著减少程序运行时的开销,并提高应用启动速度和执行效率。此外,方舟编译器还支持多种编程语言,包括Java、C/C++等,并能实现这些语言之间的高效互操作。

jikuaidi6yuan的博客 2160

硬件工程师笔记——电子器件汇总大全

本文系统总结了14种常用电子器件的工作原理及功能应用,包括电阻、压敏电阻、电容、电感、二极管、三极管、MOS管、晶振、光耦、IGBT、继电器、磁珠、可控硅和线性稳压器。每种器件从结构原理、工作特性到典型应用进行全面解析,如电阻的限流分压、电容的储能滤波、三极管的放大开关等。重点阐述了各器件在电路设计中的关键作用,如IGBT的功率控制、继电器的隔离保护、LDO的电压稳定等,并提供了实际电路应用案例。文章还整理了硬件工程师笔试面试相关的知识点和真题资源,为电子工程师提供全面的技术参考。

XU157303764的博客 2万+

10、犹豫双模糊TOPSIS算法:原理与实例解析

本文介绍了犹豫双模糊TOPSIS算法的基本原理与应用步骤,结合中国四家纺织公司的案例,详细解析了从构建犹豫双模糊决策矩阵、归一化处理、专家信息聚合,到确定正负理想解、计算距离与相对贴近度系数的完整决策流程。该方法有效应对决策者在评价过程中的犹豫性,适用于财务评估、项目选择等复杂多属性决策场景,具有较强的实用性和推广价值。

yhn45678901的博客 122

方舟编译器的引发的学习惨案

昨天公司给了部p30,开机体验了下,确实不错。运存8g+内存128g+cpu麒麟980搭载EMUI9.1,重点是华为公布的方舟编译器。并向业界开源改工程,于是赶紧上网学习了下关于Android ART JVM的知识,也可以给别人吹吹牛逼方舟编译器到底干了个啥。 简介 方舟编译器可供开发者在开发环境一次性的将高级语言编译为机器码,手机安装应用程序后可全速运行程序,带来效率上的极大提升。根据华为实...

qq_28898075的博客 999

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ArkCompiler(方舟编译器)

摘要: 鸿蒙方舟编译器(ArkCompiler)是鸿蒙生态的核心编译引擎,支持跨平台部署,通过AOT/JIT混合编译提升30%以上启动性能。开发者需遵循强类型规范(如避免any类型)、使用对象池化技术优化内存,并合理配置编译模式(如treeshaking缩减包体积)。实战中推荐结合DevEco Profiler监控内存泄漏,通过AppStorage实现数据共享,并避免高频循环中的动态类型操作。学习路径建议从ArkTS基础工程入手,逐步掌握编译优化与性能调优技巧。

2301_79392153的博客 1001

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

谈一谈 OpenHarmony 的方舟编译体系

OpenHarmony 目前主推的应用开发语言是js,谈到javascript多数人想当然的认为不适合用在单片机或嵌入式上,这家伙脚本语言还是解释执行肯定会效率不高。当然这是传统意义上的偏见。 之前js在web浏览器上用的很火的时候确实是这样的。 但自从出现了V8和nodejs, js逐渐的在MVVM前端,移动端H5和后端上都有了第二春。微软针对脚本语言的类型不安全也创造发明了typescript,可见重视程度不一般,还创造了很多的vscode编辑器。不过ts它最终还是先编译成了js,只是写法上.

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 6149

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

看一文了解方舟编译器

看一文了解方舟编译器 在线体验地址:https://www.openarkcompiler.cn/demonstration 可视化编译过程,直接看懂 方舟编译器:多端多语言,轻量低开销 方舟编译器概述 方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。 方舟编译器还在持续演进中,陆续将上述能力...

阿里渣渣java研发组-群主 1745
上一篇: HDC技术分论坛:HarmonyOS新一代UI框架的全面解读
下一篇: HDC2021技术分论坛:分布式调试、调优能力解决方案
「已注销」
博客等级 码龄5年 1045粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值