# OHCompilerDaily **Repository Path**: tianlongdev/ohcompiler-daily ## Basic Information - **Project Name**: OHCompilerDaily - **Description**: 日常编译 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 84 - **Created**: 2024-02-27 - **Last Updated**: 2024-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 交叉编译整体流程 1. 构建linux编译环境:准备ark_js_vm等;依赖包等。 2. `linux环境`上游编译目标文件。 3. `win+设备环境`下游运行测试。 ~~~mermaid graph LR A[构建编译环境] --> B[编译] B --> C[推文件到设备] C --> D[运行测试] D --> E[结果统计归纳] ~~~ --- ### 流程说明(速通版) 1. fork工程;蓝区搭环境;配置gitee信息;下载工程。 2. 源码放到pgo/src/mytest目录;执行`python compile_pgo.py mytest` 3. 黄区拉工程;连设备;执行`python run_ark_workload_pgo_hos.py mytest 5 ` --- ### 详细流程说明 #### 环境搭建 - 请参照[编译pgo环境搭建](编译pgo环境搭建.md) 和 [编译swift环境搭建](编译swift环境搭建.md) - 记住Arkcompiler的路径。 #### 蓝区host侧编译 - fork本项目到自己的gitee,拉取到linux服务器。请在服务器上配置好自己的gitee相关信息,保证可以pull和push - 将写好的ts文件(请保证每个文件可独立运行)打包成一个文件夹,命名为mytest (可自由命名)。 - 将mytest文件夹放到{$PROJECT_PATH}/pgo/src/下,你会得到{$PROJECT_PATH}/pgo/src/mytest/*.ts类似的目录结构。 - 到{$PROJECT_PATH}/pgo/下,执行`python compile_pgo.py mytest`。 - 执行之前,需要修改第15行的Arkcompiler路径: - `ARK_COMPILER_PATH = 'YOUR_PATH' # 最近编译器路径` - python脚本执行时,会把编译产物汇总到{$PROJECT_PATH}/pgo/tools下。 - 如果成功执行,编译出的an/ai/ap/abc将会出现在{$PROJECT_PATH}/pgo/out/mytest。 - 所有文件将会自动commit并push到你的仓库。 --- - 同时支持swift的编译,脚本在{$PROJECT_PATH}/swift下,文件路径类似。 #### gitee仓库 - 请确保你fork了本项目,其余操作脚本将自动执行。 #### 黄区跑测 - 在黄区windows电脑上拉取最新的工程文件,这包含了你编译出的文件。 - usb连接HOS设备,请确保你root了手机,以及可能需要锁频锁核进行测试。 - 控制台进入{$PROJECT_PATH}/pgo/out/目录: - 执行 `python run_ark_workload_pgo_hos.py mytest 5 [no_pgo]` - 其中最后一个参数[no_pgo]是可选的:默认不指定,将执行aot优化的测试;若指定,则执行解释器测试。 - 5 是循环次数。 需要安装一个pandas的python库,若已安装则忽略:pip install pandas。 - 输出将出现在当前目录下,一个xxx.csv文件,可以用excel打开。 --- - 同时支持swift跑测,文件组织结构和arkts基本相同。 - 同时支持v8-jit/v8-asm跑测,无需编译,直接跑测即可。