Memory leak with opening/closing projects in multiple frames: still there

Hi there,

I had to deal with multiple projects today, opening and closing them repeatedly, in multiple frames. At the end of the cycle I have one project open (minor footprint, just a few classes) and 180M of 190M memory usage (which won't go below 170 no matter how many times I press the garbadge collector icon).

I know the issue was discussed several times in the past, but I'm not aware of any (still) open request on this topic. Is this issue still being looked at?

Thx,
Andrei

P.S. I'm using build 2244.

13 comments

Andrei Oprea wrote:

Hi there,

I had to deal with multiple projects today, opening and closing them repeatedly, in multiple frames. At the end of the cycle I have one project open (minor footprint, just a few classes) and 180M of 190M memory usage (which won't go below 170 no matter how many times I press the garbadge collector icon).

I know the issue was discussed several times in the past, but I'm not aware of any (still) open request on this topic. Is this issue still being looked at?

Thx,
Andrei

P.S. I'm using build 2244.


YoutKit profiler memory dump will help greatly to investigate the problem.


--
Maxim Shafirov
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0

I ran into this also. I thought it was the TC5 integration.

Norris Shelton
Sun Certified Java Programmer




Andrei Oprea wrote:

>Hi there,
>
>I had to deal with multiple projects today, opening and closing them repeatedly, in multiple frames. At the end of the cycle I have one project open (minor footprint, just a few classes) and 180M of 190M memory usage (which won't go below 170 no matter how many times I press the garbadge collector icon).
>
>I know the issue was discussed several times in the past, but I'm not aware of any (still) open request on this topic. Is this issue still being looked at?
>
>Thx,
>Andrei
>
>P.S. I'm using build 2244.

>

0

Is there a way for them to add a stripped down or a trial version to the
plugin manager?

Norris Shelton
Sun Certified Java Programmer




Maxim Shafirov (JetBrains) wrote:

Andrei Oprea wrote:

>
>> Hi there,
>>
>> I had to deal with multiple projects today, opening and closing them
>> repeatedly, in multiple frames. At the end of the cycle I have one
>> project open (minor footprint, just a few classes) and 180M of 190M
>> memory usage (which won't go below 170 no matter how many times I
>> press the garbadge collector icon).
>>
>> I know the issue was discussed several times in the past, but I'm not
>> aware of any (still) open request on this topic. Is this issue still
>> being looked at?
>>
>> Thx,
>> Andrei
>>
>> P.S. I'm using build 2244.
>
>

YoutKit profiler memory dump will help greatly to investigate the
problem.

>
>

0

Norris Shelton wrote:

Is there a way for them to add a stripped down or a trial version to the
plugin manager?


We're going to ship a stripped version enough for taking snapshots as
the EAP starts. This way every time during EAP you suspect IDEA has a
memory leak you just press a button and here we are. The slowdowns could
be "offline profiled" the same way. Start/Stop profiling, send snapshot
to JB.

--
Maxim Shafirov
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0

We're going to ship a stripped version enough for taking snapshots as
the EAP starts. This way every time during EAP you suspect IDEA has a
memory leak you just press a button and here we are. The slowdowns
could be "offline profiled" the same way. Start/Stop profiling, send
snapshot to JB.

That would be really cool :)).
Maybe you could cofigure to include it for the future Fabrique plug-in too, because last time (Fabrique EAP 5.1) was very CPU and memory hungry :) .

Ahmed.

0

This sounds perfect. Throw in JSF support for VF and you guys will "own
this space".

Norris Shelton
Sun Certified Java Programmer




Maxim Shafirov (JetBrains) wrote:

Norris Shelton wrote:

>
>> Is there a way for them to add a stripped down or a trial version to
>> the plugin manager?
>
>

We're going to ship a stripped version enough for taking snapshots as
the EAP starts. This way every time during EAP you suspect IDEA has a
memory leak you just press a button and here we are. The slowdowns
could be "offline profiled" the same way. Start/Stop profiling, send
snapshot to JB.

>

0

Hello Maxim,

That sounds perfect. And when did you say we'll have the joy of playing with an EAP build again?... ;)

Thx,
Andrei

MS> We're going to ship a stripped version enough for taking snapshots
MS> as the EAP starts. This way every time during EAP you suspect IDEA
MS> has a memory leak you just press a button and here we are. The
MS> slowdowns could be "offline profiled" the same way. Start/Stop
MS> profiling, send snapshot to JB.
MS>

0

Hello Maxim,

OK, I got the snapshot, but you'll have to give me an ftp server I can put it on, it's 170MB in size. :)

Best,
Andrei


MS> YoutKit profiler memory dump will help greatly to investigate the
MS> problem.
MS>

0

Hello Maxim,

OK, I got the snapshot, but you'll have to give me an ftp server I can put it on, it's 170MB in size. :)

Best,
Andrei


MS> YoutKit profiler memory dump will help greatly to investigate the
MS> problem.
MS>

0

Hi,

Ok, we got your snapshot.
The memory leak with switching projects is caused by plugins you are
using, they just have strong references to the projects (most often as
keys in the map) thus causing the memory leak.
Following example plugin classes from the snapshot strongly reference
the Project:
- SQLPluginPanel (SQLPlagin) has field instanceMap of type
HashMap<Project,?>.
- org.rafke.RSSPanel has field instances of type HashMap<Project,?>
- netx.trustx.simpleuml.components.DiagramSettingsWorkspace (simpleuml)
has field DiagramSettingsWorkspaceMap field of type HashMap<Project,?>
- com.propertyEditor.propedit.model.bundle.BundleManager
(PropertyEditor) has field managers with type HashMap<Project,?>
- tmate classes also have references to Project, exact classes/fields
are ommitted due to unreadability after obfuscation

To plugin writers, always clear reference to projects you are using on
closing the project (Project components has callbacks on close project,
ProjectManager has listener subscription for projects lifecycle)

Andrei Oprea wrote:

Hello Maxim,

OK, I got the snapshot, but you'll have to give me an ftp server I can put it on, it's 170MB in size. :)

Best,
Andrei


MS> YoutKit profiler memory dump will help greatly to investigate the
MS> problem.
MS>



--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0

Is there anyway that IDEA could report such references when closing the frame?

Not only does this eat memory up by the boat load, it also slows down IDEA menu navigation significantly.

Nick

0

Hi,

One could pickup YJP memory snapshot and investigate GC roots for
Project instances.

Nick Pratt wrote:

Is there anyway that IDEA could report such references when closing the frame?

Not only does this eat memory up by the boat load, it also slows down IDEA menu navigation significantly.

Nick



--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0

Hello Maxim,

MM> Hi,
MM>
MM> Ok, we got your snapshot.
MM> The memory leak with switching projects is caused by plugins you are
MM> using, they just have strong references to the projects (most often

Oh, I see. Thanks for investigating the problem, I'll post messages in the plugins newsgroup (in case their authors missed this thread).

Best,
Andrei

0

Please sign in to leave a comment.