0

我有 2 个viewsA 和 B,每个都有一个treeViewer. B 在 A 中有一个tolistener树。所以每次我在 A 中选择一个项目时,操作是:selectionChangedviewtreeselectionChanged

1-setInputtreeB

2-应用过滤器

3-展开所有元素

这里的问题是每次我单击 A 中的树项时,对于树ViewAView中的相同选择,B 显示树项所需的时间每次都在增加。并且每次显示的项目都变慢。

操作的哪一部分selectionChanged可能导致此性能问题!?

经过一番调查,我发现这种方法TreeViewer.expandAll()是导致每次延迟大的原因之一。这是一个Eclipse问题还是我应该修改它?

4

2 回答 2

2

性能错误很难被发现。在执行这些操作时,尝试观察系统的 CPU、磁盘活动和内存使用情况。检查您的代码以查看是否有任何未正确初始化的集合正在构建。

于 2012-10-16T15:59:12.053 回答
1

另外,尝试安装一些分析器,我建议YourKit Profiler它有 1 个月的试用版,我认为这足以发现你的问题。它有很多很棒的特性,比如与 eclipse 的集成以及直接从分析器进入问题的地方。当我在性能上苦苦挣扎时,给了我很多帮助。

于 2012-10-18T08:59:58.203 回答