Univer 协同引擎性能测试
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
引言在当今快节奏的商业环境中,实时协作编辑已成为现代生产力应用不可或缺的核心功能。它让远程团队能够高效协作,共同完成创作和编辑任务。本报告深入评估了 Univer 协同引擎在处理多人实时协作编辑时的性能表现,并将其与市场上其他领先产品进行对比。
在这篇论文中,提出了市场上流行的实时编辑服务中延迟性能测量。提出了协同编辑人数是影响实时编辑系统性能的主要因素,以下是主流实时编辑产品表现:
Univer GitHub 地址:github.com/dream-num/u… 介绍 Univer 协同引擎为了更好理解测试过程,让我们简要介绍一下 Univer 协同引擎的实现方案。 Univer 协同引擎非常注重扩展性,已支持分布式方案。但为便于叙述,我们将暂时采用单机部署方案来描述。 Univer 协同引擎主要使用两种编程语言:Golang 和 JavaScript。
Univer 使用 OT(操作转换)作为协同冲突处理的方案。 为了加快单个请求处理速度,协同引擎被设计为有状态服务,即每篇活跃文档在内存中都有一份最新的拷贝,客户端的编辑请求会迅速应用和写入。 有状态服务 Collaboration-server 采用 Node.js 实现,与前端编辑器共享相同的冲突处理代码,包括两个核心方法:
无状态服务 Universer 使用 Golang 实现,主要负责调度和网络
以下是用户编辑事件如何被协同引擎处理的过程:
性能测试为全面评估 Univer 协同引擎的性能,我们精心设计了一系列测试,涵盖了关键指标和典型场景。 为方便叙述,介绍几个关键术语: 通俗讲,衡量协同体验最直接的指标是,A 的编辑多久后被 B 应用并展示。 这个过程涉及的变量很多,为简化压测过程,这里提取最关键的变量,并称为“协同延迟”。
在当前协同引擎模型下,影响协同延迟的直接因素为 CS 的处理数量,不妨称为 协同并发数。 测试环境:
预设条件:
测量方法:
预期结果:研究协同编辑人数与协同延迟 (pct99) 之间的关系。 测量结果:
总结
凭借这些基准结果,Univer 协同引擎在实时协作中展现出不俗的性能,处理 200 个并发用户时,协同引擎成功将协作延迟保持在约 1.3 秒左右,接近业界主流产品水平。 同时随着协同人数增加,协同延迟出现指数增长的趋势。我们将继续改进引擎支持大量并发用户的能力,并尽量降低延迟。 作者:阳络 链接:https://juejin.cn/post/7355439624100855843 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 该文章在 2024/7/25 11:49:10 编辑过 |
关键字查询
相关文章
正在查询... |