已合并
add hybrid binary dump and offline snapshot merger #14820
add hybrid binary dump and offline snapshot merger #14820
已合并
yangxiaoshuai2022创建于 6月18日
yangxiaoshuai2022
6月18日

关联的Issue

https://gitcode.com/openharmony/arkcompiler_runtime_core/issues/11883

修改原因(目的、解决的问题等,例如:修复xx场景崩溃问题)

The existing JSON hybrid heap dump allocates a full in-memory snapshot and serializes it single-threaded, which does not scale to large heaps and stalls the target process. A binary dump streams records straight to a faultloggerd fd and can fork a child for the heavy work so the target resumes sooner, while a two-file translate path lets the dynamic rawheap and the static binary snapshot be merged into one .heapsnapshot offline.

修改描述(做了什么,变更了什么,例如:xx函数入口增加判空)

  1. add HybridHeapProfiler::BinaryDump / DoBinaryDumpInCurrentProcess / ForkAndPerformBinaryDump reusing the existing GC+Suspend pattern;
  2. route DumpFormat::BINARY through DFXJSNApi::PerformHybridHeapDump;
  3. add DynamicDump / DynamicWriter as the dynamic-side dumper skeleton;
  4. extend rawheap_translate to single-file and two-file (dynamic+static) modes with StaticSnapshotParser (two-phase, EOF-driven) and SnapshotMerger (content-dedup string pool plus cross-VM XRef edge splicing);
  5. add XREF edge type and SYNTHETIC node type constants;
  6. add unit tests for the dynamic dump pipeline and static snapshot translation.

自测试项(测试结果截图,直接贴到每一个测试项底下)

jit-workload 本地执行(compiler/jit/isa/stub/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/对象布局等修改必须执行)

非StableArray不能采用ElementKind读取元素(修改解释器相关IR代码需要自检)

在IR时添加fastpath时,需要检查是否有分支会改变非字典序模式或者修改数组长度,此时应该走slowpath(修改解释器相关IR代码需要自检)

IR化后的逻辑需要与c++实现一致,不一致的地方需要有分支用例看护(修改解释器相关IR代码需要自检)

c++代码中检测或抛出异常的地方,IR需要同样实现(修改解释器相关IR代码需要自检)

IR中使用默认入参是HeapObject对象的接口时,需要在上下文中保证了参数的正确性(修改解释器相关IR代码需要自检)

修改c解释器,需要同时检查汇编解释器与AOT是否需要修改

是否已执行L0用例

修改或新增IR代码时,必须在代码注释中标注其对应的C++实现函数名(修改解释器相关IR代码需要自检)


示例格式:
//@ref namespace::class::method()

单次代码提交的变更行数(新增+删除)超过200行时,必须在合并前组织线上Review

Issue:Change-Id: Ia93f2376e18391e11dae3f9e824bbc2c91f3e364

likedislike
Pull Request已成功合入, 合并人@openharmony_ci
(感谢 yangxiaoshuai2022 的贡献)
yangxiaoshuai2022yangxiaoshuai2022
6月18日 关联了issue:[新需求]: Add hybrid binary heap dump and translate
openharmony_ciopenharmony_ci成员
6月18日 添加了label:waiting_on_author
openharmony_ci
openharmony_ci成员
6月18日 评论:

感谢提交 Pull Requests !此PR未通过DCO校验。
校验失败可能原因:

1. 未签署“DCO协议”(开发者原创声明协议),在线签署、查看签署状态

2. Commits 中未包含 Signed-off-by信息,参考FAQ处理

修复上述问题后,在PR的评论框输入“check dco” ,单击”评论”,系统将再次进行DCO校验。

当前检测到如下Commits的Signed-off-by邮箱未签署DCO协议:


Thanks for submitting a pull request. This pull request has not passed the DCO check.
Possible causes:

1. You have not signed the Developer Certificate of Origin (DCO). Sign the DCO and check DCO status.

2. The commits do not contain the Signed-off-by information. To resolve this issue, see FAQs.

After resolving the preceding issues, enter check dco in the comment box of this pull request and click Comment. The system will check DCO status again.

The Signed-off-by emails in the following commits have not signed the DCO:

likedislike
openharmony_ciopenharmony_ci成员
6月18日 添加了label:dco检查失败
yangxiaoshuai2022
yangxiaoshuai2022
6月18日 评论:

start build

likedislike
此处折叠了731条消息 查看更多
yangxiaoshuai2022
yangxiaoshuai2022
13 天前 评论:

submit

likedislike
openharmony_ciopenharmony_ci成员
13 天前 合入了pull request,合并节点 SHA:ce26e8e1ecd90113362edaf02e69eb448f0d1bc2
openharmony_ciopenharmony_ci成员
13 天前 删除了label:waiting_on_author
openharmony_ciopenharmony_ci成员
13 天前 添加了label:merged
openharmony_dcp
openharmony_dcp成员
13 天前 评论:

你因提交次数过多被限制提交,为保障上库效率、避免资源浪费,请先观看学习视频:https://dcp.openharmony.cn/workbench/video/videoDisplay

likedislike