0

私は2つviewsのAとBを持っており、それぞれに。がありtreeViewerます。BにはAlistenerにtoツリーselectionChangedがあるため、Aでアイテムviewを選択するたびに、アクションは次のようになります。treeselectionChanged

1setInputからtreeB

2-フィルターを適用します

3-すべての要素を展開します

ここでの問題は、ViewAのツリーアイテムをクリックするたびに、Bがツリーアイテムを表示するのにかかる時間が、ツリーAでView同じ選択を行うたびに長くなり、アイテムの表示が遅くなることです。

アクションのどの部分がselectionChangedこのパフォーマンスの問題を引き起こす可能性がありますか!?

TreeViewer.expandAll()いくつかの調査の結果、この方法が毎回大きな遅延を引き起こす原因であることがわかりました。これはEclipse問題ですか、それとも変更する必要がありますか?

4

2 に答える 2

2

パフォーマンスのバグを見つけるのは困難です。これらのアクションを実行しながら、システムの CPU、ディスク アクティビティ、およびメモリ使用量を監視してみてください。コードをチェックして、正しく初期化されていないコレクションが作成されていないかどうかを確認してください。

于 2012-10-16T15:59:12.053 に答える
1

また、プロファイラーをインストールしてみてください。YourKitプロファイラーには1か月の試用版があり、問題を見つけるのに十分だと思います。Eclipseとの統合や、プロファイラーから問題のある場所に入るなど、多くの優れた機能があります。パフォーマンスに苦労していたとき、私は大いに助けてくれました。

于 2012-10-18T08:59:58.203 に答える