SWT больше никаких дескрипторов

Windows XP имеет предел 10 000 пользовательских дескрипторов для каждого процесса и общих 32000 для каждой настольной сессии. Однако то, когда я выполняю 4 или 5 процессов SWT, каждое потребление не больше, чем 2 000 пользовательских дескрипторов, SWT больше не обрабатывает исключение, всегда будет, бросил.

Кто-либо знает почему?

25
задан James 7 January 2010 в 06:10
поделиться

3 ответа

Если я правильно вас понимаю, то, скорее всего, вы получаете следующее исключение:

org.eclipse.swt.SWTError: No more handles

Вы можете создавать ресурсы (такие как Шрифт, Изображение или GC объекты), которые вы некорректно распоряжаетесь. Вы, возможно, захотите ненадолго прочитать руководство по SWT на тему Управление ресурсами операционной системы.

Чтобы определить, действительно ли это так, я могу порекомендовать вам эту полезную статью: Diagnosing Handle Leaks in SWT/RCP Windows Applications, которая объясняет, что такое ресурсы и предлагает использовать Process Explorer или DPus для поиска утечек.

Коллега также настоятельно рекомендует Sleak, приложение, ориентированное на SWT, которое может фактически информировать Вас о том, какие ресурсы остались в остаточной памяти.

Для очень технического понимания того, что такое обработчики SWT, эта статья о Sybase описывает , что существует три вида: Объект пользователя, объект GDI или объект ядра, каждый из которых имеет свой максимум.

.
44
ответ дан 28 November 2019 в 20:38
поделиться

Предел не 10000 ручек. Приложения могут использовать намного больше 10000 дескрипторов (если позволяет оперативная память). Лимит установлен на GDI и пользовательские ресурсы (графические элементы).

Какие ресурсы используются SWT-приложениями (это можно увидеть на примере задачи)? Это поможет понять, что такое утечка

.
2
ответ дан 28 November 2019 в 20:38
поделиться

Скорее всего, в вашей программе произошла какая-то утечка ресурсов. Используйте следующую утилиту ( http://www.eclipse.org/articles/swt-design-2/sleak.htm ) как простой способ найти утечки ресурсов SWT. Я использовал его для устранения множества проблем в приложении rcp, над которым я работал

7
ответ дан 28 November 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: