Equinox 启动器 Main.run() 调用每个操作

Equinox launcher Main.run() called on each action

我有一个基于 eclipse 的产品(我们添加了一些插件并将其打包为产品​​)。
我们有一些性能问题和不合理的锁定。
在调查 YourKit Java Profiler 期间,我注意到在每个执行的操作(展开文件夹、按下按钮、保存文件等)中,最高的 CPU 负载和最长的 CPU 使用是在一个名为 main 的线程上从 org.eclipse.equinox.launcher.Main.run(String[]) Main.java:1499.

开始

org.equinox.launcher插件的版本是1.4.0.v20161219-1356

这是什么线程,为什么它总是 运行(它不是守护线程,显然它一直处于活动状态)?我该怎么办?

这是主要的 Eclipse 用户界面线程。它包含 SWT 显示“readAndDispatch”循环,其中 运行 所有用户界面代码。

此线程始终处于 运行 状态,对此您无能为力。

如果您在 UI 线程中遇到锁定和大量 CPU 可能是某些插件在 UI 线程中 运行ning 代码在后台线程中确实应该是 运行。 UI 线程中的长 运行ning 代码会使 UI 无响应。