Thanks for clarification.
The fix looks fine.
On 20.10.15 11:49, Rajeev Chamyal wrote:
Hello Sergey,
I mentioned incorrectly that JDK8 is using CMS as default garbage collector.
JDK 8 uses Parallel GC as default collector.
Following are the results with Parallel GC as default collector in JDK9.
Max java process size before fix while running test case(webrev) : 220MB
(approx.) JDK version build 1.9.0-ea-b86.
Max java process size after fix while running test case(webrev) :
130MB(approx.). JDK9 version 1.9.0-internal-_2015_10_15_21_12-b00.
Regards,
Rajeev Chamyal
-----Original Message-----
From: Rajeev Chamyal
Sent: 20 October 2015 12:10
To: Sergey Bylokhov; Philip Race
Cc: Alexander Scherbatiy; [email protected]
Subject: RE: Review request for JDK-8030099 Memory usage of java process
increases after pressing start button in test window
Hello Sergey,
Below are my observation while testing the fix.
Max java process size before fix while running test case(webrev) : 170MB
(approx.) JDK version build 1.9.0-ea-b86.
Max java process size after fix while running test case(webrev) :
165MB(approx.). JDK9 version 1.9.0-internal-_2015_10_15_21_12-b00.
The results are not consistent always in both cases.
We cannot compare these results with JDK8 because it uses CMS collector as
default garbage collector while JDK9 is using G1 collector.
G1 collector is giving better results because it does heap compaction as well.
We are using different reference types in different files ( files registering
instances with Disposer) e.g. StrikeCache uses SoftReferences.
Regards,
Rajeev Chamyal
-----Original Message-----
From: Sergey Bylokhov
Sent: 20 October 2015 03:54
To: Philip Race; Rajeev Chamyal
Cc: Alexander Scherbatiy; [email protected]
Subject: Re: Review request for JDK-8030099 Memory usage of java process
increases after pressing start button in test window
On 20.10.15 0:50, Philip Race wrote:
The code change looks fine. The test is delightfully complicated.
I still have not got a benefit of weak references in this use case. Does it
mean that weak are always better? If yes, then we should at some point change
default policy for all other cases as well.
Did you run it under jtreg ?
-phil.
On 10/19/15, 5:10 AM, Rajeev Chamyal wrote:
Hello,
Please review the following fix for Jdk9:
Bug: https://bugs.openjdk.java.net/browse/JDK-8030099
Webrev:http://cr.openjdk.java.net/~rchamyal/8030099/webrev.00/
<http://cr.openjdk.java.net/%7Erchamyal/8030099/webrev.00/>
Issue: The memory usage of java process goes on increasing if we call
ShellFolder:listFiles API
aggressively on some folder with large number of files/folders.
Cause: Win32ShellFolder class registers its instances and native data
with sun.java2d.Disposer class for later disposal.
Win32ShellFolder instances are getting registered as
PhantomReferences with Disposer and are not getting cleared immediately.
This leads to increase of memory usage by java process.
Fix: Instead of registering the complete Win32ShellFolder object
reference with disposer we are now adding only a sentinel object and
also using sun.java2d.Disposer :: addObjectRecord API which adds the
references as WeakReferences.
Regards,
Rajeev Chamyal
--
Best regards, Sergey.
--
Best regards, Sergey.