В приложении Eclipse RCP я пытаюсь открыть много редакторов. Это в основном дерево с множеством узлов, каждый из которых открывает редактор. Когда я открываю доступ от 150 до 200 редакторов и пытаюсь открыть редактор для следующего триода, он не открывается. Консоль Eclipse показывает «org.eclipse.swt.SWTError: Больше никаких ручек». Однако, если я закрою несколько уже открытых редакторов, я смогу открыть столько же новых редакторов treenode.
Я контролировал использование памяти для javaw.exe; память увеличивается при открытии каждого редактора, но количество дескрипторов остается постоянным после определенного MAX. javaw.exe потребляет около 120000 КБ при возникновении ошибки. Общая память, используемая всеми приложениями во время ошибки, составляет 700 000 КБ. И если я пытаюсь открыть еще несколько приложений, таких как IE, он либо не открывается, либо открывается с меньшими возможностями пользовательского интерфейса из-за нехватки системной памяти. И все это несмотря на наличие 2 ГБ оперативной памяти!
Я также пытался увеличить vmargs в настройках памяти затмения, но это тоже не сильно помогло.
а) Есть ли утечка памяти в моем коде? Я не вижу этого, поскольку ручки остаются постоянными после определенного МАКСА. Как я понимаю, поскольку редакторы открыты, элементы управления SWT на них не располагаются, пока не будут закрыты.
б) Что макс. память, которая может быть использована приложениями? Поскольку объем ОЗУ составляет 2 ГБ, и я вижу, что общая память всех процессов должна быть лучше 700 000 КБ, что, по моему мнению, составляет около 680 МБ.