# interchange_static
**Repository Path**: zhang-quanchao/interchange_static
## Basic Information
- **Project Name**: interchange_static
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-15
- **Last Updated**: 2025-10-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# BenchMark工具说明
## 一、该BenchMark目的
该BenchMark脚本主要用来测试静态字节码中的静态函数的执行时间,目前支持以下55个静态函数的测试:
```text
IgetClass,
IsetClass,
IgetConditionCode,
IsetConditionCode,
IgetOpcode,
IsetTargetType,
IgetTargetType,
IcreateCmp,
IcreateLoadString,
IcreateReturn,
IcreateIf,
IcreateNeg,
IcreateNot,
IcreateAdd,
IcreateSub,
IcreateMul,
IcreateDiv,
IcreateMod,
IcreateShl,
IcreateShr,
IcreateAShr,
IcreateAnd,
IcreateOr,
IcreateXor,
IcreateCast,
GcreateNullPtr,
IcreateNewArray,
IcreateNewObject,
IcreateInitObject,
IcreateLoadArray,
IcreateStoreArray,
IcreateStoreArrayWide,
IcreateLenArray,
IcreateLoadConstArray,
IcreateCheckCast,
IcreateIsInstance,
IcreateLoadNullValue,
IcreateReturnVoid,
IcreateEquals,
IcreateStrictEquals,
IcreateCallStatic,
IcreateCallVirtual,
IcreateAddI,
IcreateSubI,
IcreateMulI,
IcreateDivI,
IcreateModI,
IcreateShlI,
IcreateShrI,
IcreateAShrI,
IcreateAndI,
IcreateOrI,
IcreateXorI,
IcreateThrow,
IcreateIsUndefined,
IcreateNullCheck,
IcreateStobjObj,
IcreateLdobjObj,
```
## 二、前期准备
### 1、准备linux环境
### 2、预先安装python的依赖组件
- 执行以下命令,安装对应的依赖组件:pip3 install -r requirements.txt
### 3、预下载代码仓
- 将该代码仓代码下载到linux系统中(任意路径,但是需要先将ark-standalone-build仓也下载到linux系统中:https://gitee.com/ark_standalone_build/docs )
- 按下面文档执行代码,生成add_log_static.abc:
https://gitcode.com/openharmony/arkcompiler_runtime_core/tree/OpenHarmony_feature_20250702/libabckit,
然后去替换test_abc中的add_log_static.abc(目的是兼容最新的静态字节码接口)
### 4、修改适配仓库中的脚本的代码路径:
- ①修改generate_so.sh中的28行代码位置路径
- ②修改execute_aop.sh中的97行代码位置路径
- ③修改execute.py中第5行和32行路径
## 三、操作步骤
- 步骤1:执行generate_so.sh脚本以获取“so”文件。
- 步骤2:执行execute_aop.sh脚本以获取日志文本(在生成的output目录中)
- 步骤3:执行execute.py生成对应的Excel结果报表
## 四、预期结果
见 output目录下的:add_log_static_log.txt和add_log_static_log.xlsx
## 五、注意事项
### 1、如何适配新增的静态字节码API函数接口
- 1.1、在add_log_entry.cpp中的607行后添加新增的静态字节码接口的测试代码,并且把新增接口所在的头文件,添加到add_log_entry.cpp中
- 1.2、添加新增接口之后,add_log_static.abc需要重新执行后替换
- 1.3、重新执行 《三、操作步骤》