【问题标题】:Performance improvement of FilteredTreeFilteredTree 的性能提升
【发布时间】:2015-12-26 06:49:56
【问题描述】:

我正在使用 FilteredTree 类来过滤我的 TreeViewer 内容,但是由于现在有很多数据,当我输入一些内容来过滤数据时,它会在我输入下一个字母之前挂起。有什么方法可以提高性能。

【问题讨论】:

    标签: java eclipse swt rcp treeviewer


    【解决方案1】:

    缓解慢速过滤器的一种方法是增加运行过滤器之间的延迟。这允许用户在重新运行过滤器之前键入多个字符。

    在 FilteredTree 的子类中,覆盖 getRefreshJobDelay()。默认值为 200 毫秒,也许允许 500-800 毫秒更适合您的用例?

    例如考虑Eclipse PDE of a filtered tree中的用例:

    @Override
    protected long getRefreshJobDelay() {
        // Prolonged job delay time is required because of the attribute search being more costly in nature.
        // This can block input to the filter text severely. Thus it shouldn't happen when typing slowly.
        // The delay of 1500ms is bypassed by some actions that use the filter text to initiate searches or clear the text.
        long delay = (fBypassFilterDelay) ? 0 : REFRESHJOB_DELAY_TIME;
        setBypassFilterDelay(false); // reset afterwards
        return delay;
    }
    

    REFRESHJOB_DELAY_TIME 是 1200 毫秒。

    如果您希望加快您的过滤器实施速度,或许发布它会有所帮助?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2017-10-08
      • 2013-05-12
      相关资源
      最近更新 更多