I have been using SQL developer for quite some time and had initially had problems in the past with high memory consuption when I use this tool.
I have received and applied advice from this forum and while it had helped a little, the majority of the high memory consuption remained an issue.
I finally got more time to dig around and try to specifically isolate where the problem seems to be coming from and here is what I found.
*1)* I have removed the Check for Updates feature
*2)* I have turned off many of the extensions except for DBA Navigator, Real Time SQL Monitoring, SearchBar and Snippet.
*3)* When I start a fresh SQL Developer Session and initiate a Oracle Connection the application consumes roughly 148 meg fo RAM
*4)* When I open my Windows Task Manager and watch the memory allocated to SQL Developer I notice it goes up when I move my mouse over the SQL Developer tool and When I run through menus at roughly 5k a second or so and the memory is never released back to the system.
*5)* When I run a Large SQL to the grid the memory jumps by about 100 meg or so and will continue to do so every time I repeat the SQL until SQL Developer consumes roughly 748 meg of RAM.
*6)* 748 Meg of RAM seems to be the number when SQL Developer (with one Oracle connection) no longer continues to consume more and then not return the memory to the system.
Is there a way to have SQL Developer automatically clear up it's active memory usage without closing it down and restarting it?
Why does SQL Developer continue to consume more and more memory just from moving your mouse over it and/or by navigating menus?
comment the following two lines as shown below
Now SQL Developer runs at roughly 500 meg.
I guess the only thing I have left to ask others reviewing this would be if there is a way to get these memory values down without having much adverse impacts on SQL Developer based on newer JVM switches/functionalities.
The posts that drove these changes are old from a technologoical perspective :) 2010.
There is not much more I can contribute here -- perhaps others can. I will only say...
In terms of current Java HotSpot VM tuning options, see:
Also, if you are looking for sustained performance / quicker resumption after minimizing SQL Developer, don't forget this:
In terms of the G1GC algorithm, I would guess that the latest Java 7 update will be more finely tuned than the latest Java 6, but the recommendation is to stay with Java 6 until an upcoming SQL Developer release formally certifies on Java 7.
I wanted to add that I have been able to successfully get my OSD JVM Max Mem switch set down as far as 100M.
This works as long as I work with nicely tuned SQL and don't run huge selects returning unneeded data.
I have also found that dropping memory down this far has an impact on large XLSX exports.
However, if I need large exports, I try to use CSV to get around this, bump up my memory switch (would be nice to see extension for this) or use another tool.
I have found that the IDE disappears (can see it still in task manager) with a low memory setting if I do large dumps so I have to be carefull with that.
I'm even considering having two installations of OSD.
One Light (low mem) installation and One beast (high mem) of an installation where I can do large output dumps when occasionally needed.