Make doc's picture pass through YellowZone CI

Signed-off-by: DaiH <daihuina1@huawei.com>
https: //gitee.com/openharmony/ark_js_runtime/issues/I4ZDEJ?from=project-issue
1. Yellow Zone CI can't pass doc's picture without changing oat.xml.
2. Make some modification to docs according to the open source  specification.
Change-Id: Idbe9d8245bad3f2d7b0807ae2138bebb22a1f2ed
This commit is contained in:
DaiH 2022-03-24 14:38:32 +08:00
parent 6efbeeaba1
commit 8b058853d6
3 changed files with 7 additions and 6 deletions

View File

@ -64,6 +64,7 @@ Note:If the text contains special characters, please escape them according to th
<filteritem type="filepath" name="docs/figures/zh-cn_image_0000001196712959.png" desc="自造的二进制图片"/>
<filteritem type="filepath" name="docs/figures/zh-cn_image_0000001196789343.png" desc="自造的二进制图片"/>
<filteritem type="filepath" name="docs/figures/zh-cn_image_0000001197967897.png" desc="自造的二进制图片"/>
<filteritem type="filepath" name="docs/figures/zh-cn_image_ark-js-arch.png" desc="自造的二进制图片"/>
</filefilter>
<filefilter name="copyrightPolicyFilter" desc="copyright文件头校验策略的过滤条件" >
</filefilter>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,8 +1,8 @@
# 概述<a name="ZH-CN_TOPIC_0000001174295771"></a>
方舟编译器\(ArkCompiler\)是华为自研的组件化、可配置的多语言编译和运行平台包含编译器、工具链、运行时等核心部件支持高级编程语言在多种芯片平台上编译与运行并支撑OpenHarmony标准操作系统及其应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。开源的ArkCompiler JS Runtime提供的能力是在OpenHarmony操作系统中编译和运行JavaScript语言\(本文后面简称JS\)。
方舟编译器\(ArkCompiler\)是OpenHarmony内置的组件化、可配置的多语言编译和运行平台包含编译器、工具链、运行时等核心部件支持高级编程语言在多种芯片平台上编译与运行并支撑OpenHarmony标准操作系统及其应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。开源的ArkCompiler JS Runtime提供的能力是在OpenHarmony操作系统中编译和运行JavaScript语言\(本文后面简称JS\)。
本次开源的ArkCompiler JS Runtime分成两个部分分别是JS编译工具链与JS运行时。JS工具链将JS源码编译成方舟字节码\(ArkCompiler Bytecode\)JS运行时负责执行生成的方舟字节码\(后续如无特殊说明,字节码特指方舟字节码\)。
ArkCompiler JS Runtime分成两个部分分别是JS编译工具链与JS运行时。JS工具链将JS源码编译成方舟字节码\(ArkCompiler Bytecode\)JS运行时负责执行生成的方舟字节码\(后续如无特殊说明,字节码特指方舟字节码\)。
图 1 JS编译工具链架构
![](figures/zh-cn_image_0000001197967897.png)
@ -23,11 +23,11 @@ ArkCompiler JS Runtime以方舟字节码文件作为输入并直接运行字节
- **JS Execution Subsystem**
执行引擎目前包含执行字节码的解释器、缓存隐藏类和内联缓存、以及剖析记录运行时类型的Profiler。
执行引擎包含执行字节码的解释器、缓存隐藏类和内联缓存、以及剖析记录运行时类型的Profiler。
- **JS Compiler Subsystem**
编译子系统目前包含Stub编译器、基于Circuit IR的优化编译框架和代码生成器。
编译子系统包含Stub编译器、基于Circuit IR的优化编译框架和代码生成器。
- **JS Runtime subsystem**
@ -40,13 +40,13 @@ ArkCompiler JS Runtime以方舟字节码文件作为输入并直接运行字节
**ArkCompiler JS Runtime的设计特点**
- 相比于业界著名的JS引擎比如V8和JSCore等ArkCompiler JS Runtime的主要设计目标是作为OpenHarmony操作系统的JavaScript/TypeScript应用程序执行引擎而不是作为浏览器中的JavaScript执行引擎。
- ArkCompiler JS Runtime的主要设计目标是为OpenHarmony操作系统提供JavaScript/TypeScript应用程序执行引擎而不是作为浏览器中的JavaScript执行引擎。
- 为了提升应用的执行性能和安全性ArkCompiler JS Runtime选择将JaveScript/TypeScript程序预先静态编译为方舟字节码带上静态类型信息从而减少运行时的编译和类型信息收集开销。另外出于安全性和性能的考虑JS Runtime选择不支持eval和只支持strict模式的代码。
- 原生支持TypeScript目前业界通用的执行方式是把TS转化为JS再通过JS运行时来执行。ArkCompiler JS Runtime规划在ts2abc编译TS源码时会推导分析TS的类型信息并传递给ArkCompiler JS运行时。运行时直接利用类型信息静态生成内联缓存inline caching)从而加速字节码执行。另外ArkCompiler JS Runtime规划中的TSAOT \(Ahead-of-Time\) Compiler可以利用ts2abc传递的类型信息直接编译生成高质量的机器码使得应用可以直接以机器码形式运行提升运行性能。
- 轻量级Actor并发模型ECMAScript没有提供并发规范业界JS引擎的实现中常用Actor并发模型。此模型下执行体之间不共享任何数据通过消息机制进行通信。业界当前实现的JS Actor模型web-worker有启动速度慢、内存占用高这些缺陷。为了利用设备的多核能力获得更好的性能提升JS Runtime需要提供启动快、内存占用少的Actor实现。目前ArkCompiler JS Runtime已经实现在Actor内存隔离模型的基础上共享actor实例中的不可变或者不易变的对象方法和字节码后续继续共享内建代码块、常量字符串等等来提升JS Actor的启动性能和节省内存开销达到实现轻量级Actor并发模型的目标。
- 轻量级Actor并发模型ECMAScript没有提供并发规范业界JS引擎的实现中常用Actor并发模型。此模型下执行体之间不共享任何数据通过消息机制进行通信。业界当前实现的JS Actor模型web-worker有启动速度慢、内存占用高这些缺陷。为了利用设备的多核能力获得更好的性能提升JS Runtime需要提供启动快、内存占用少的Actor实现。目前ArkCompiler JS Runtime已经实现在Actor内存隔离模型的基础上共享actor实例中的不可变或者不易变的对象方法和字节码后续继续共享内建代码块、常量字符串等等来提升JS Actor的启动性能和节省内存开销达到实现轻量级Actor并发模型的目标。
- TypeScript/C++的跨语言交互在OpenHarmony操作系统平台API实现中通常需要面临C/C++代码访问和操作TS对象的场景。对这个业务场景ArkCompiler JS Runtime规划可以根据TS程序中的class声明和运行时约定静态生成包含TS对象布局描述的C/C++头文件以及操作这些TS对象的C/C++实现库。在C/C++代码中通过包含TS对象描述头文件以及链接对应实现库实现直接操作TS对象的效果。由于TS类型或其内在布局并非总是固定不变的因此在TS对象操作的代码实现中会插入类型检查如果对象类型或布局在运行时发生变化则回退执行通用的慢速路径。