已关闭
[新需求]:高性能 IPC 技术 #323
Bryan__Wu创建于  3月23日关闭于  6月26日
Bryan__Wu
Bryan__Wu
3月23日 创建

感谢提出新需求。

新需求提供了什么功能?

场景与问题

在 OpenHarmony 上,音频链路、图像处理等场景中,数据需要在多个进程构成的处理流水线中持续流转。这类场景中 IPC(进程间通信) 带来的开销包含两个方面:

  • 信道建立时延:流水线中各进程之间需要频繁建立 IPC 信道。传统共享内存每次建立都需要内核介入完成页表修改,在信道建立非常高频的场景下,这一开销不可忽视,成为制约 IPC 性能的主要瓶颈之一。
  • 数据传输时延:Binder、Socket 等主流 IPC 机制依赖内核数据拷贝,传输时延随数据量线性增长,难以满足帧级、包级的低时延要求。

NexusLand 的解决方案

NexusLand 是一种面向 OpenHarmony Linux 内核,针对低时延场景的高性能 IPC 的解决方案。NexusLand 基于稀疏混淆的新型共享内存机制,在进程间建立低开销的 IPC 数据通道,大幅减少数据传递过程中的内核介入,解决了现有 IPC 方案在大数据量传输、信道建立频繁等场景下内存拷贝时延高、内核下陷开销大的问题。

值得一提的是,NexusLand 的 IPC 机制被完整封装为一个独立的 Linux 内核模块,对内核主体代码几乎不产生任何修改,侵入性极低。这一设计使得 NexusLand 可作为独立的功能模块,灵活地按需加载与卸载。

该需求带来的价值、应用场景?

性能价值:

数据传输是进程间通信的主要性能瓶颈之一,NexusLand 能够在最小化内核介入的情况下,高效完成进程间的通信信道建立和数据传递。根据在 Dayu200 RK3568 开发板上的测试结果,和 OpenHarmony 默认的 Binder IPC 相比,NexusLand 信道建立时延降低 98.48%,在数据传输量超过 512KB 的场景下数据传输时延降低 30.84%,具备在生产环境中部署的性能价值。

典型应用场景:

  • 跨应用内容共享(剪贴板/拖拽/分享):分屏拖拽文件、复制大图等场景中,应用进程之间需要突发性地传递数 MB 的内容,传统的建立共享内存的方式会在用户操作时引入较高的信道建立时延,而 NexusLand 可以大幅降低这一延迟。
  • 音频处理链路:通话、录音等场景下,音频数据在音频服务、降噪/编解码、音频应用等多个进程之间持续流转。NexusLand 能够实现多进程的高效数据传递,减少内核介入。
  • 相机/视频录制管道:图像数据根据处理的流水线会在多个进程间流转,每帧数据量在 MB 级,各级进程之间需要持续高频地传递大块 buffer。NexusLand 的预映射机制使整条流水线无需在每帧重建映射,几乎消除信道建立开销。
likedislike
Bryan__WuBryan__Wu
3月23日 添加了label:enhancement
openharmony_ci
openharmony_ci成员
3月23日 评论:

感谢提交Issue!关于Issue的交互操作,请访问OpenHarmony社区支持命令清单。如果有问题,请联系 [@z-jax](https://gitcode.com/z-jax) [@leejiawei](https://gitcode.com/leejiawei) [@weiyj__lk](https://gitcode.com/weiyj__lk) 。如果需要调整订阅PR、Issue的变更状态,请访问链接


Thanks for submitting the issue. For more commands, please visit OpenHarmony Command List. If you have any questions, please refer to committer gitcode for help. If you need to change the subscription of a Pull Request or Issue, please visit the link.

likedislike
openharmony_ciopenharmony_ci成员
3月23日 添加了label:waiting_for_assign
此处折叠了18条事件消息 查看更多
OOpenHarmony_CMO成员
6月26日 issue状态由 待办的 改变为 已完成