【问题标题】:How does redux and immutable data structures handle large data sets?redux 和不可变数据结构如何处理大型数据集?
【发布时间】:2016-02-02 20:38:17
【问题描述】:

我正在构建一个应用程序,在该应用程序中,我经常需要执行返回唯一数据集的查询,这些数据集的范围可以从 5,000 到 50,000 个 csv 元素。将所有这些查询保存在内存中似乎效率很低。数据集用于数据可视化。有人对如何解决这个问题有建议吗?还是我应该放弃 redux / immutable.js?

【问题讨论】:

  • 您的内存真的不足,还是这是寻找问题的解决方案?
  • 我还没有实现它,但我只是想在我真正开始之前得到一些意见。最初的想法不包括这么大的数据集,所以我决定继续并决定使用这个前端堆栈。
  • 好吧,我完全赞成放弃不需要的框架,但我不明白这如何适用于您的应用程序所需的整体加载和清除策略,无论如何都会如此你在用什么...
  • 如果您不打算在任何时候使用和更改数据而只是使用它来提供可视化,那么我认为使用 immutable.js 没有任何意义。对于任何类型的 webGL 可视化,请使用 Javascripts typed arrays - 即使使用 DOM 或画布,将数据存储在其中也可能是一件好事。

标签: javascript reactjs frontend immutable.js


【解决方案1】:

我用一个大的 JSON 文件 (22mb) 测试了不可变,你说得对,它非常效率低下。特定的痛点是 Internet Explorer。减少和过滤这组数据几乎花费了30s。我不认为这是 Immutable.js 的错误,但它的目标不是在一次核数据爆炸中处理 250,000 个 JSON 项(这是我在这种情况下测试的,以找到浏览器计算限制的限制特别是关于过滤)。但重要的是要注意它不是一个主要为速度而设计的库。

然而,本机对象在 IE12 上将时间减少到最多 6s(具有讽刺意味的是,11 更快,但他们的你去)。但平均值在1-2s 之间。

因此,简而言之,我不会对大型数据集使用不可变对象,我会使用原生对象,然后如果您有特定的设计原因,可能会对大型数据集的子集使用不可变对象。

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 2020-05-28
    • 2023-04-02
    • 2022-01-06
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2019-07-12
    相关资源
    最近更新 更多