[9] RFR(S): 8034839: jvm hangs with gc/gctests/LoadUnloadGC test
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Feb 21 11:27:49 PST 2014
Lets discuss it on hotspot-dev.
Note the current hashtable allocates only in c_heap. Albert added
hashtable which can allocate in thread local resource area for temporary
table and c_heap for long live table.
Albert,
So you restored code in dependencies.?pp to one before 7194669 fix. Right?
I think you need to follow GrowableArray example to name parameter "bool
C_heap = false" instead of "bool resource_mark". It should be saved in a
field because you need to free c_heap in destructor if C-heap is used:
~GrowableArray() { if (on_C_heap()) clear_and_deallocate(); }
Also I think you should avoid call to contains(item) in add() to avoid
doing the same thing twice.
You should implement remove().
Thanks,
Vladimir
On 2/21/14 12:04 AM, Albert wrote:
> Hi,
>
> could I get reviews for this small patch?
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8034839
>
> Problem: The problem is that the patch (7194669) - which was supposed to
> speed-up dependency checking
> causes a performance regression. The reason for the
> performance regression is that most dependencies
> are unique, so we have the overhead of determining if
> the dependency is already checked plus the
> overhead of dependency checking. The overhead of
> searching is significant, since we perform
> a linear search on 6000+ items each time.
>
> Solution: Use a hashtable instead of linear search to lookup already
> checked dependencies. The new hashtable
> is very rudimentary. It provides only the required
> functionality to solve this bug. However, the functionality
> can be easily extended as needed.
>
> Testing: jprt, failing test case, nashorn. The failing test case
> completes in approx. the same time as before 7194669.
> For nashorn + Octane, this patch yields the following
> times spent for dependency checking:
>
> with this patch: 844s
> 7194669: 1080s
> before 7194669: 5223s
>
> webrev: http://cr.openjdk.java.net/~anoll/8034939/webrev.00/
>
> Thanks,
> Albert
>
More information about the hotspot-dev
mailing list