У нас есть приложение для мониторинга, построенное на swt и работающее на Linux. у нас есть несколько кнопок и динамическая часть, которая изменяется, когда мы нажимаем на эти кнопки. Проблема в том, что если некоторые из них слишком быстро нажимают, процессор может достигать 100% и висит навсегда. Мы наблюдали это быстрые пики CPU только на Ubuntu Linux, где в качестве окон он работает без зуда. Мы уверены, что наше приложение перерисовывает каждый раз, когда мы нажимаем (у нас есть динамическая часть) кнопка, и это по дизайну. Проблема не только в динамической части. Одним из решений является игнорирование быстрых кликов.Ошибка производительности GUI GUI на linux
Нам интересно, можем ли мы игнорировать быстрые нажатия кнопок, чтобы избежать переполнения процессора до 100%. Если это не сработает, нам, возможно, придется перепроектировать динамическую часть, которую мы предпочитаем в качестве последней опции. предложения/комментарии очень ценятся.
С большим количеством расследований я обнаружил, что в моем ящике Linux не хватает памяти, и я ничего не вижу в журналах. Моя память кучи находится в пределах. Поэтому теперь я подозреваю, что может произойти утечка некоторой памяти, поскольку мы используем swt. Когда я смотрел на код, один класс использует метод finalize для размещения объекта swt. Я подозреваю, что это может быть преступником. Является ли этот объект завершен gc, но оставляет ресурсы собственной памяти и вызывает утечки? – Kishore
может быть ... финализация недетерминирована. Вы не должны использовать финализацию для освобождения памяти в SWT. – nanda
Да. У нас есть код для освобождения встроенной памяти в методах финализации.Хотя мы не переусердствовали, но у нас есть план сделать это. – Kishore