Программа запуска Equinox Main.run () вызывается при каждом действии - PullRequest
0 голосов
/ 20 октября 2018

У меня есть продукт на основе затмения (мы добавили несколько наших плагинов и упаковали его как продукт).
У нас есть некоторые проблемы с производительностью и необоснованные блокировки.
Во время расследования с YourKit Java Profiler Я заметил, что при каждом выполняемом действии (расширение папки, нажатие кнопки, сохранение файла и т. Д.) Максимальная загрузка ЦП и наибольшая загрузка ЦП выполняются в потоке с именем main, начинающемся с org.eclipse.equinox.launcher.Main.run(String[]) Main.java:1499.

Версия плагина org.equinox.launcher: 1.4.0.v20161219-1356.

Что это за нить, почему она всегда работает (это не нить демона и, очевидно, она постоянно работает)?Что я могу с этим поделать?

1 Ответ

0 голосов
/ 20 октября 2018

Это основной поток пользовательского интерфейса Eclipse.Он содержит SWT-дисплей «readAndDispatch», который запускает весь код пользовательского интерфейса.

Этот поток всегда запущен, и вы ничего не можете с этим поделать.

Если вы получаете блокировкии много ЦП в потоке пользовательского интерфейса, возможно, некоторые плагины выполняют код в потоке пользовательского интерфейса, который действительно должен выполняться в фоновых потоках.Длительный код в потоке пользовательского интерфейса сделает пользовательский интерфейс невосприимчивым.

...