rxjs性能阵列与流

rxjs性能阵列与流,rxjs,Rxjs,我对rxjs的世界还不熟悉,我正努力让自己的头脑了解它。我的理解是,使用rxjs的原因之一是为了提高大型数据集的性能 我试图衡量与普通阵列相比,高性能函数(map、reduce)所能带来的速度提升 我在这里举了一个例子 其思想是生成一个数组并对其应用一些操作符,测量所花费的时间 我不明白为什么流计算总是比较慢。我错过什么了吗 谢谢你的帮助 您的calculateWithStreams函数是异步的,将与数组函数并行运行。因此会使它变慢。如果您一次运行一个,那么当您稍微增大大小时,时间基本相同 与本

我对rxjs的世界还不熟悉,我正努力让自己的头脑了解它。我的理解是,使用rxjs的原因之一是为了提高大型数据集的性能

我试图衡量与普通阵列相比,高性能函数(map、reduce)所能带来的速度提升

我在这里举了一个例子

其思想是生成一个数组并对其应用一些操作符,测量所花费的时间

我不明白为什么流计算总是比较慢。我错过什么了吗


谢谢你的帮助

您的
calculateWithStreams
函数是异步的,将与数组函数并行运行。因此会使它变慢。如果您一次运行一个,那么当您稍微增大大小时,时间基本相同

与本机数组相比,RxJS当然有一些开销,但它通过延迟求值来弥补


还认为,改进不仅仅是执行速度,还包括内存使用。阵列版本将始终创建一个新的阵列,并将占用更多内存。

我想提到的是,
Rx.Observable.from
(我相信
Rx.Observable.fromArray
)的默认行为是使用当前的线程调度程序。如果您希望在主线程上执行大量处理,则可能需要指定不同的调度程序(
Rx.scheduler.default
),以避免阻塞UI。您好,Luka感谢您提供的信息。我试着一次运行一个,结果几乎一样。我看不出有多大区别。我意识到内存的减少已经是一个优点,但似乎反应式方法在速度上没有太大的提高,或者我做错了什么