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