Skip to content

Conversation

@linzang
Copy link
Contributor

@linzang linzang commented Sep 10, 2020

  • enable parallel heap inspection for ZCollectedHeap
  • preliminary evaluation:
    Time of jmap histo on 8GB heap with ~5GB objects
    • before: 7.103s
    • after : 2.734s (with 4 parallel threads)

Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8252105: parallel heap inspection for ZCollectedHeap

Download

$ git fetch https://git.openjdk.java.net/jdk pull/103/head:pull/103
$ git checkout pull/103

@bridgekeeper
Copy link

bridgekeeper bot commented Sep 10, 2020

👋 Welcome back lzang! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Sep 10, 2020

@linzang The following label will be automatically applied to this pull request: hotspot-gc.

When this pull request is ready to be reviewed, an RFR email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label (add|remove) "label" command.

@openjdk openjdk bot added the hotspot-gc hotspot-gc-dev@openjdk.org label Sep 10, 2020
@linzang
Copy link
Contributor Author

linzang commented Sep 10, 2020

/label add serviceability

@openjdk openjdk bot added rfr Pull request is ready for review serviceability serviceability-dev@openjdk.org labels Sep 10, 2020
@openjdk
Copy link

openjdk bot commented Sep 10, 2020

@linzang
The serviceability label was successfully added.

@mlbridge
Copy link

mlbridge bot commented Sep 10, 2020

Webrevs

Copy link
Contributor

@pliden pliden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just looked at this briefly. My initial comment is that we need to avoid all the code duplicated from ZHeapIterator and isolate all this a bit better. Perhaps folding everything into one iterator, that can be used by both object_iterate() and parallel_object_iterator(). I'll take a closer look, and perhaps try some alternatives, when I get a chance.

@linzang
Copy link
Contributor Author

linzang commented Sep 10, 2020

Hi @pliden,
Thanks for your comments, I will try to merge ZHeapIterator and ZHeapParIterator and update the pr then.
-Lin

- enable parallel heap inspection for ZCollectedHeap
- preliminary evaluation:
  Time of jmap histo on 8GB heap with ~5GB objects
  * before: 7.103s
  * after : 2.734s (with 4 parallel threads)
@linzang
Copy link
Contributor Author

linzang commented Sep 11, 2020

Hi @pliden,
I updated the PR which merge the changed code into ZHeapIterator.
May I ask your help to review it ? Thanks.
-Lin

@pliden
Copy link
Contributor

pliden commented Oct 2, 2020

Hi @linzang,

I started reviewing your patch in more detail. However, I ended up with a large number of major comments and I started to feel that it would probably be more productive to create an alternative patch for this, so I did.

master...pliden:8252105_parallel_object_iterator

Some of the main differences compared to your proposed patch:

  • Root scanning is also now done in parallel
  • Same code paths regardless of number of worker threads used
  • Arrays are chunked for better work stealing/balance
  • A terminator is used for better work stealing/balance
  • All of the functionality is isolated (as much as possible) to ZHeapIterator

I think the easiest way forward is probably if you close this PR, and I'll open a new one.

@linzang
Copy link
Contributor Author

linzang commented Oct 5, 2020

Hi @pliden,
Sorry for late reply.
I will close this PR and let's discuss in your new one.

-Lin

@linzang linzang closed this Oct 5, 2020
@pliden
Copy link
Contributor

pliden commented Oct 5, 2020

@linzang Ok, thanks. I created #507.

@linzang linzang deleted the z-par branch November 23, 2021 01:53
pfirmstone pushed a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
…protocols, via a public Serialization API and JERI Serialization Layer. openjdk#103
pfirmstone pushed a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
…protocols, via a public Serialization API and JERI Serialization Layer. openjdk#103
pfirmstone pushed a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
…protocols, via a public Serialization API and JERI Serialization Layer. openjdk#103

Add Replace interface to allow similar functionality to Java Serialization's writeReplace method.
pfirmstone pushed a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
…protocols, via a public Serialization API and JERI Serialization Layer. openjdk#103

Implement Replace interface for URICodeSource

PreferredClassProvider creating ClassLoader using proxy codebase URL ProtectionDomain openjdk#125

Add AccessControlContext parameter to constructor, to allow context to be passed in.
pfirmstone pushed a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
…protocols, via a public Serialization API and JERI Serialization Layer. openjdk#103
pfirmstone pushed a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
…protocols, via a public Serialization API and JERI Serialization Layer. openjdk#103
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hotspot-gc hotspot-gc-dev@openjdk.org rfr Pull request is ready for review serviceability serviceability-dev@openjdk.org

Development

Successfully merging this pull request may close these issues.

2 participants