微前端架构如何改变企业的开发模式与效率提升
714
2022-10-23
EasyReact- 美团客户端响应式框架
EasyReact 是一款基于响应式编程范式的客户端开发框架,开发者可以使用此框架轻松地解决客户端的异步问题。EasyReact已在美团和大众点评客户端的部分业务中进行了实践,并且持续迭代了一年多的时间。
EasyReact 目前开源的是 iOS Objective-C 语言部分,系统需求:
iOS 8.0 +Xcode 8.0 +
特性
注:以下列出的“节点”均指 EZRNode,即 EasyReact 中对各种值(所有对象类型)的一种统一表示。
创建节点或可变节点立即获得节点的值对节点的未来值进行监听取消对一个节点的监听以某种形式连接两个点对一个节点进行基本变换mapfilterdistinctUntilChangedthrottleskiptakedeliverOndelayscan对多个节点进行组合combinemergezip对一个节点进行分支得到多个节点switch-case-defaultif-then-else对多个节点进行值同步syncWith手动同步对节点进行高阶变换flattenflattenMap对节点和边进行遍历简单访问访问器模式
对比其他函数响应式库
EasyReact、ReactiveCocoa、RxSwift 常见API 基于耗时的 Benchmarking
测试环境
编译平台: macOS High Sierra 10.13.5
IDE: Xcode 9.4.1
真机设备: iPhone X 256G iOS 11.4(15F79)
测试对象
listener, map, filter, flattenMap 等单阶操作combine, zip, merge 等多点聚合操作syncWith 操作
其中测试的规模基于操作对象个数10,触发次数1000。如 Listener 方法有10个监听者,重复触发发送值的行为1000次。 时间单位为ns。
测试数据
重复上面的实验10次,得到数据平均值如下:
结果总结
基于 Objective-C 语言实现的 EasyReact 和 ReactiveCocoa :
ReactiveCocoa 平均耗时是 EasyReact 的 725.41%
EasyReact 的 swift 版本即将开源,届时会和 RxSwift 进行 benchmark 的比较。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~