代码拉取完成,页面将自动刷新
7436
【ark】optimize napi_call_function
已合并
关联的Issue
#I9PY8W:[新需求]: optimize napi_call_function
修改原因(目的、解决的问题等,例如:修复xx场景崩溃问题)
napi call function性能优化
修改描述(做了什么,变更了什么,例如:xx函数入口增加判空)
- AddToKeptObjects简化调用链路,并且记录下是否有hasKeptObjects_,方便作为fastpath判断依据
- ThreadStateTransitionScope将hasSwitchState_记录下来,析构时候可以节省一次GetState操作
- handleScope中,handle leak check相关逻辑挪到宏里面隔离
- HasPendingJob省去一次handle的构造,省去一次scope的open和close
- 优化napi_call_function的异常路径,使用hole这个特殊状态为来记录异常是否发生,省去了反复从thread上get exception的操作
- CheckSwitchDebuggerBCStub的likely路径提前
- checksafePoint的cas简化
- 缩小local scope中ThreadManagedScope 的范围
- 记录isDebugApp 状态作为IsMixedDebugEnabled的fastpath
自测试项(测试结果截图,直接贴到每一个测试项底下)
独立编译进行编译(必须执行 python ark.py arm64.release)
- 已通过
-
不涉及,无需验证
独立编译进行编译(必须执行 python ark.py x64.release)
- 已通过
-
不涉及,无需验证
debug UT 本地执行(必须执行 python ark.py x64.debug ut)
- 已通过
-
不涉及,无需验证
与不带pr的执行情况相同
release UT 本地执行(必须执行 python ark.py x64.release ut)
- 已通过
-
不涉及,无需验证
ut release
release test262 本地执行(非Test代码必须执行 python ark.py x64.release test262)
- 已通过
-
不涉及,无需验证
debug test262 本地执行(非Test代码必须执行 python ark.py x64.debug test262)
- 已通过
-
不涉及,无需验证
release pgo-aot test262 本地执行(compiler/aot/isa/stub/ic/对象布局等修改必须执行)
- 已通过
- 不涉及,无需验证
debug pgo-aot test262 本地执行(compiler/aot/isa/stub/ic/对象布局等修改必须执行)
- 已通过
- 不涉及,无需验证
regress测试套 本地执行(解释器/builtins/异常处理/对象布局/IC等修改必须执行)
- 已通过
- 不涉及,无需验证
interpreter-js_perf 性能测试(性能优化/性能敏感场景:IR化/ic/hclass/对象布局/isa/builtins等修改必须执行)
- 已验证不劣化
- 不涉及,无需验证
aot-js_perf 性能测试(性能优化/性能敏感场景:IR化/ic/hclass/对象布局/isa/builtins等修改必须执行)
- 已验证不劣化
- 不涉及,无需验证
interpreter-workload性能测试(性能优化/性能敏感场景:IR化/ic/hclass/对象布局/isa/builtins等修改必须执行)
- 已验证不劣化
- 不涉及,无需验证
aot-workload性能测试(性能优化/性能敏感场景:IR化/compiler/aot/isa/stub/ic/对象布局等修改必须执行)
- 已验证不劣化
- 不涉及,无需验证
rk3568 L0用例验证,门禁构建镜像启动一遍所有应用(非Test代码必须执行)
- 已通过
- 不涉及,无需验证
rk3568 wukong压测2小时验证(非Test代码需要,可用原型机替代验证)
- 无相关crash产生
- 不涉及,无需验证