【问题标题】:How to handle selection with large amounts of data in NatTable如何在 NatTable 中处理大量数据的选择
【发布时间】:2016-12-23 20:48:04
【问题描述】:

当使用带有选择层的 NatTable 时,如果我有大量 (100 万+) 列数据,选择一行将花费非常长的时间 (20 秒+) 或者会彻底崩溃我的应用程序。有没有更好的方法来处理大量数据的选择,或者可能有一种方法可以选择全部数据,但只直观地显示显示为选中的列的数量,并在表格滚动时更新这些数据?

【问题讨论】:

  • 您现在是在谈论选择 NatTable 中的一行还是所有行?你的问题并不清楚。
  • 两者都会导致问题发生。 It happens when selecting any amount of incredibly large data, i.e. selecting one row with 1 million+ columns will tr​​igger it, as well as then selecting multiple rows that each have the million+ columns.
  • 你使用什么选择模型?
  • 我调用了两个参数的构造函数,所以似乎我为 ISelectionModel 传递了“null”
  • 所以你使用默认的 SelectionModel。你如何选择行?通过行标题或其他方式?你的用例是什么?您需要支持所有类型的选择(单元格、行、列)还是仅支持行选择?顺便说一句,一百万列有什么用例?

标签: nattable


【解决方案1】:

事实证明,这确实是 NatTable 中的性能泄漏。有趣的是,它以这种形式存在了很长时间,直到现在还没有人看到。

我创建了一张票 [1] 并着手修复。

直到您可以尝试从您的作品中删除或替换“坏人”。如果这不可能,您需要等待修复。

  • ColumnReorderLayer:如果您不需要列重新排序支持,请将其从您的层堆栈中删除(当谈到数百万列时,我认为重新排序不是必需的功能)
  • ColumnHideShowLayer:如果您不需要支持隐藏列,请将其从层堆栈中删除。不确定在显示数百万列的用例中是否需要它。
  • SelectionModel:我不知道你的数据模型,但目前PreserveSelectionModel 的性能可能稍好一些。或者查看附在票证上的建议修复(上传后),并通过基于修复创建自定义 ISelectionModel 实现在您的环境中使用该修复的本地版本。

[1]https://bugs.eclipse.org/bugs/show_bug.cgi?id=509685

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 2020-04-07
    • 1970-01-01
    • 2013-04-09
    • 2014-06-12
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多