From shade at redhat.com Thu Aug 13 12:24:03 2020 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 13 Aug 2020 14:24:03 +0200 Subject: JOL 0.12 Message-ID: <4ad4b0d0-d9aa-43e1-8569-0c640b0f8812@redhat.com> Hi, JOL 0.11 is released and available on Maven Central. This is the maintenance release, and it brings the following changes. *) GraphWalker performance improvements spliced from JEP-8249196 performance work. This provides substantial throughput and footprint boosts when traversing both small and large object graphs. 7902731: Optimize GraphWalker::walk 7902732: Cache instance sizes during GraphWalker::walk 7902743: Use hand-rolled IdentityHashSet in GraphWalker *) Hotspot layouter does not hold its weight anymore, given JDK 15 field layout improvements. It was simplified to ease maintenance. The downside: it requires some adjustments for dependent code that uses HotspotLayouter for anything (unlikely, but still). 7902728: Simplify Hotspot simulation layouter *) (Internal) Test infrastructure improvements: 7902729: Test different JVM modes automatically 7902727: JOL fails HotspotLayouterRealTest on JDK 15 Enjoy! -- Thanks, -Aleksey From shade at redhat.com Thu Aug 20 09:56:52 2020 From: shade at redhat.com (shade at redhat.com) Date: Thu, 20 Aug 2020 09:56:52 +0000 Subject: hg: code-tools/jol: 2 new changesets Message-ID: <202008200956.07K9uqe6007662@aojmv0008.oracle.com> Changeset: 4ac769feae5b Author: shade Date: 2020-08-20 11:56 +0200 URL: https://hg.openjdk.java.net/code-tools/jol/rev/4ac769feae5b 7902753: GraphLayout should print the root description ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java Changeset: 80821636a470 Author: shade Date: 2020-08-20 11:56 +0200 URL: https://hg.openjdk.java.net/code-tools/jol/rev/80821636a470 7902585: Retry address snapshot if moves were detected ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphPathRecord.java From shade at redhat.com Mon Aug 24 17:15:19 2020 From: shade at redhat.com (shade at redhat.com) Date: Mon, 24 Aug 2020 17:15:19 +0000 Subject: hg: code-tools/jol: 3 new changesets Message-ID: <202008241715.07OHFSvC027845@aojmv0008.oracle.com> Changeset: bb8651f3dc40 Author: shade Date: 2020-08-24 10:18 +0200 URL: https://hg.openjdk.java.net/code-tools/jol/rev/bb8651f3dc40 7902756: Lazy address computation ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphPathRecord.java Changeset: 7e70b935a49f Author: shade Date: 2020-08-24 10:28 +0200 URL: https://hg.openjdk.java.net/code-tools/jol/rev/7e70b935a49f 7902757: Do not cache toString in GraphPathRecord ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphPathRecord.java Changeset: ab64ad22712f Author: shade Date: 2020-08-24 10:29 +0200 URL: https://hg.openjdk.java.net/code-tools/jol/rev/ab64ad22712f 7902758: Hide/finalize internal GraphPathRecords ! jol-core/src/main/java/org/openjdk/jol/info/ArrayGraphPathRecord.java ! jol-core/src/main/java/org/openjdk/jol/info/FieldGraphPathRecord.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphPathRecord.java From shade at redhat.com Tue Aug 25 10:48:45 2020 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 25 Aug 2020 12:48:45 +0200 Subject: JOL 0.13 Message-ID: Hi, JOL 0.13 is released and available on Maven Central. This is the maintenance release, and it brings the following changes. *) Address handling is improved: the addresses are computed lazily when accessing the address snapshots (i.e. "externals", or other printable map); and if object moves were detected, the whole thing retries a few times until addresses are stable, or try count depletes: 7902585: Retry address snapshot if moves were detected 7902756: Lazy address computation *) UX bug: GraphLayout regressed earlier, it should have printed the root object descriptions: 7902753: GraphLayout should print the root description *) UX bug: GraphLayout used to cache toString result, which is not actually correct. This also saves some allocation/memory footprint. 7902757: Do not cache toString in GraphPathRecord *) Little API change: 7902758: Hide/finalize internal GraphPathRecords Enjoy! -- Thanks, -Aleksey