From shade at openjdk.java.net Mon Mar 8 18:23:27 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Mon, 8 Mar 2021 18:23:27 GMT Subject: RFR: CODETOOLS-7902835: JOL: ObjectShapes.processJAR should close resources properly Message-ID: SonarCloud instance reports a few easy-to-fix issues in this method. ------------- Commit messages: - Fix whitespace - CODETOOLS-7902835: JOL: ObjectShapes.processJAR should close resources properly Changes: https://git.openjdk.java.net/jol/pull/9/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=9&range=00 Issue: https://bugs.openjdk.java.net/browse/CODETOOLS-7902835 Stats: 7 lines in 1 file changed: 0 ins; 3 del; 4 mod Patch: https://git.openjdk.java.net/jol/pull/9.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/9/head:pull/9 PR: https://git.openjdk.java.net/jol/pull/9 From duke at openjdk.java.net Mon Mar 8 18:35:45 2021 From: duke at openjdk.java.net (duke) Date: Mon, 8 Mar 2021 18:35:45 GMT Subject: git: openjdk/jol: CODETOOLS-7902835: JOL: ObjectShapes.processJAR should close resources properly Message-ID: <6bd59c6d-6c7e-451b-86fc-67800cbcfe23@openjdk.java.net> Changeset: 1f34d1b5 Author: Aleksey Shipil?v Committer: GitHub Date: 2021-03-08 19:35:21 +0000 URL: https://git.openjdk.java.net/jol/commit/1f34d1b5 CODETOOLS-7902835: JOL: ObjectShapes.processJAR should close resources properly ! jol-cli/src/main/java/org/openjdk/jol/operations/ObjectShapes.java From shade at openjdk.java.net Mon Mar 8 18:38:12 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Mon, 8 Mar 2021 18:38:12 GMT Subject: Withdrawn: CODETOOLS-7902835: JOL: ObjectShapes.processJAR should close resources properly In-Reply-To: References: Message-ID: On Mon, 8 Mar 2021 18:18:54 GMT, Aleksey Shipilev wrote: > SonarCloud instance reports a few easy-to-fix issues in this method. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/9 From shade at openjdk.java.net Mon Mar 8 18:39:17 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Mon, 8 Mar 2021 18:39:17 GMT Subject: RFR: CODETOOLS-7902836: JOL: Fix incorrect implicit numeric promotions Message-ID: SonarCloud instance reports a few places where implicit promotions are not what we want them to be. The most notorious please is in HeapDumpReader::digestObjArray. ------------- Commit messages: - CODETOOLS-7902836: JOL: Fix incorrect implicit numeric promotions Changes: https://git.openjdk.java.net/jol/pull/10/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=10&range=00 Issue: https://bugs.openjdk.java.net/browse/CODETOOLS-7902836 Stats: 8 lines in 2 files changed: 3 ins; 0 del; 5 mod Patch: https://git.openjdk.java.net/jol/pull/10.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/10/head:pull/10 PR: https://git.openjdk.java.net/jol/pull/10 From shade at openjdk.java.net Mon Mar 8 18:56:12 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Mon, 8 Mar 2021 18:56:12 GMT Subject: Withdrawn: CODETOOLS-7902836: JOL: Fix incorrect implicit numeric promotions In-Reply-To: References: Message-ID: On Mon, 8 Mar 2021 18:34:50 GMT, Aleksey Shipilev wrote: > SonarCloud instance reports a few places where implicit promotions are not what we want them to be. The most notorious please is in HeapDumpReader::digestObjArray. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/10 From duke at openjdk.java.net Mon Mar 8 19:49:19 2021 From: duke at openjdk.java.net (duke) Date: Mon, 8 Mar 2021 19:49:19 GMT Subject: git: openjdk/jol: CODETOOLS-7902836: JOL: Fix incorrect implicit numeric promotions Message-ID: Changeset: bdd2c2df Author: Aleksey Shipil?v Committer: GitHub Date: 2021-03-08 19:54:01 +0000 URL: https://git.openjdk.java.net/jol/commit/bdd2c2df CODETOOLS-7902836: JOL: Fix incorrect implicit numeric promotions ! jol-core/src/main/java/org/openjdk/jol/heap/HeapDumpReader.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java From shade at openjdk.java.net Mon Mar 29 13:21:51 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Mon, 29 Mar 2021 13:21:51 GMT Subject: RFR: CODETOOLS-7902866: JOL: Rework the instance dump output: formatting, decoding mark/class words, array length Message-ID: JOL already knows a lot about the target VM. It can also decode the object headers more verbosely. ------------- Commit messages: - CODETOOLS-7902866: JOL: Rework the instance dump output: formatting, decoding mark/class words, array length - Decode mark word Changes: https://git.openjdk.java.net/jol/pull/11/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=11&range=00 Issue: https://bugs.openjdk.java.net/browse/CODETOOLS-7902866 Stats: 231 lines in 7 files changed: 155 ins; 23 del; 53 mod Patch: https://git.openjdk.java.net/jol/pull/11.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/11/head:pull/11 PR: https://git.openjdk.java.net/jol/pull/11 From duke at openjdk.java.net Mon Mar 29 13:24:44 2021 From: duke at openjdk.java.net (duke) Date: Mon, 29 Mar 2021 13:24:44 GMT Subject: git: openjdk/jol: CODETOOLS-7902866: JOL: Rework the instance dump output: formatting, decoding mark/class words, array length Message-ID: Changeset: cc7c063d Author: Aleksey Shipil?v Committer: GitHub Date: 2021-03-29 15:24:19 +0000 URL: https://git.openjdk.java.net/jol/commit/cc7c063d CODETOOLS-7902866: JOL: Rework the instance dump output: formatting, decoding mark/class words, array length ! README.md ! jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java ! jol-core/src/main/java/org/openjdk/jol/vm/HotspotUnsafe.java ! jol-core/src/main/java/org/openjdk/jol/vm/VMOptions.java ! jol-core/src/main/java/org/openjdk/jol/vm/VirtualMachine.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/UniverseData.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/UniverseTask.java From shade at openjdk.java.net Mon Mar 29 13:27:39 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Mon, 29 Mar 2021 13:27:39 GMT Subject: Withdrawn: CODETOOLS-7902866: JOL: Rework the instance dump output: formatting, decoding mark/class words, array length In-Reply-To: References: Message-ID: On Mon, 29 Mar 2021 13:17:19 GMT, Aleksey Shipilev wrote: > JOL already knows a lot about the target VM. It can also decode the object headers more verbosely. > > `JOLSample_14_FatLocking` example output: > > $ ~/Install/jdk11u-dev/bin/java -cp jol-samples/target/jol-samples.jar org.openjdk.jol.samples.JOLSample_14_FatLocking > # WARNING: Unable to get Instrumentation. Dynamic Attach failed. You may add this JAR as -javaagent manually, or supply -Djdk.attach.allowAttachSelf > # Running 64-bit HotSpot VM. > # Using compressed oop with 3-bit shift. > # Using compressed klass with 0x0000000800000000 base address and 0-bit shift. > # Objects are 8 bytes aligned. > # Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] > # Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] > > **** Fresh object > org.openjdk.jol.samples.JOLSample_14_FatLocking$A object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x0000000000000005 (biasable; age: 0) > 8 4 (object header: class) 0x000d5d08 > 12 4 (object alignment gap) > Instance size: 16 bytes > Space losses: 0 bytes internal + 4 bytes external = 4 bytes total > > **** Before the lock > org.openjdk.jol.samples.JOLSample_14_FatLocking$A object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x00007f5eec70c005 (biased: 0x0000001fd7bb1c30; epoch: 0; age: 0) > 8 4 (object header: class) 0x000d5d08 > 12 4 (object alignment gap) > Instance size: 16 bytes > Space losses: 0 bytes internal + 4 bytes external = 4 bytes total > > **** With the lock > org.openjdk.jol.samples.JOLSample_14_FatLocking$A object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x00007f5e64008682 (fat lock: 0x00007f5e64008682) > 8 4 (object header: class) 0x000d5d08 > 12 4 (object alignment gap) > Instance size: 16 bytes > Space losses: 0 bytes internal + 4 bytes external = 4 bytes total > > **** After the lock > org.openjdk.jol.samples.JOLSample_14_FatLocking$A object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x00007f5e64008682 (fat lock: 0x00007f5e64008682) > 8 4 (object header: class) 0x000d5d08 > 12 4 (object alignment gap) > Instance size: 16 bytes > Space losses: 0 bytes internal + 4 bytes external = 4 bytes total > > **** After System.gc() > org.openjdk.jol.samples.JOLSample_14_FatLocking$A object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x0000000000000001 (non-biasable; age: 0) > 8 4 (object header: class) 0x000d5d08 > 12 4 (object alignment gap) > Instance size: 16 bytes > Space losses: 0 bytes internal + 4 bytes external = 4 bytes total This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/11 From shade at openjdk.java.net Tue Mar 30 12:35:32 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 12:35:32 GMT Subject: RFR: CODETOOLS-7902867: JOL: Use defined data model to print the header in class layout Message-ID: JOLSample_10_DataModels does not work properly after CODETOOLS-7902866. It only takes care of the "actual" VM layout, ignoring the defined data model. We need to make ClassLayout accept the data model. ------------- Commit messages: - Remove excess imports - Remodel data model Changes: https://git.openjdk.java.net/jol/pull/12/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=12&range=00 Issue: https://bugs.openjdk.java.net/browse/CODETOOLS-7902867 Stats: 974 lines in 20 files changed: 573 ins; 340 del; 61 mod Patch: https://git.openjdk.java.net/jol/pull/12.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/12/head:pull/12 PR: https://git.openjdk.java.net/jol/pull/12 From shade at openjdk.java.net Tue Mar 30 12:39:38 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 12:39:38 GMT Subject: RFR: CODETOOLS-7902867: JOL: Use defined data model to print the header in class layout [v2] In-Reply-To: References: Message-ID: <96f0I8bnmqUNcd4EG4KORin5B4YemtXLoemUBTBabdg=.5f1971e3-8ec4-4a4b-8e84-d535d907e29e@github.com> > JOLSample_10_DataModels does not work properly after CODETOOLS-7902866. It only takes care of the "actual" VM layout, ignoring the defined data model. We need to make ClassLayout accept the data model. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Rename CCPTR to CCPS ------------- Changes: - all: https://git.openjdk.java.net/jol/pull/12/files - new: https://git.openjdk.java.net/jol/pull/12/files/4d910e5f..51e23363 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jol&pr=12&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jol&pr=12&range=00-01 Stats: 22 lines in 6 files changed: 0 ins; 0 del; 22 mod Patch: https://git.openjdk.java.net/jol/pull/12.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/12/head:pull/12 PR: https://git.openjdk.java.net/jol/pull/12 From duke at openjdk.java.net Tue Mar 30 12:47:51 2021 From: duke at openjdk.java.net (duke) Date: Tue, 30 Mar 2021 12:47:51 GMT Subject: git: openjdk/jol: CODETOOLS-7902867: JOL: Use defined data model to print the header in class layout Message-ID: Changeset: 25e78a0c Author: Aleksey Shipil?v Committer: GitHub Date: 2021-03-30 14:47:38 +0000 URL: https://git.openjdk.java.net/jol/commit/25e78a0c CODETOOLS-7902867: JOL: Use defined data model to print the header in class layout ! jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpStats.java ! jol-cli/src/main/java/org/openjdk/jol/operations/ObjectEstimates.java ! jol-cli/src/main/java/org/openjdk/jol/operations/StringCompress.java - jol-core/src/main/java/org/openjdk/jol/datamodel/CurrentDataModel.java ! jol-core/src/main/java/org/openjdk/jol/datamodel/DataModel.java + jol-core/src/main/java/org/openjdk/jol/datamodel/Model32.java + jol-core/src/main/java/org/openjdk/jol/datamodel/Model64.java + jol-core/src/main/java/org/openjdk/jol/datamodel/Model64_CCPS.java + jol-core/src/main/java/org/openjdk/jol/datamodel/Model64_COOPS_CCPS.java + jol-core/src/main/java/org/openjdk/jol/datamodel/ModelVM.java - jol-core/src/main/java/org/openjdk/jol/datamodel/X86_32_DataModel.java - jol-core/src/main/java/org/openjdk/jol/datamodel/X86_64_COOPS_DataModel.java - jol-core/src/main/java/org/openjdk/jol/datamodel/X86_64_DataModel.java ! jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java ! jol-core/src/main/java/org/openjdk/jol/layouters/CurrentLayouter.java ! jol-core/src/main/java/org/openjdk/jol/layouters/HotSpotLayouter.java ! jol-core/src/main/java/org/openjdk/jol/layouters/RawLayouter.java ! jol-core/src/test/java/org/openjdk/jol/layouters/HotspotLayouterRealTest.java ! jol-core/src/test/java/org/openjdk/jol/layouters/LayouterInvariantsTest.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_10_DataModels.java From shade at openjdk.java.net Tue Mar 30 12:50:13 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 12:50:13 GMT Subject: Withdrawn: CODETOOLS-7902867: JOL: Use defined data model to print the header in class layout In-Reply-To: References: Message-ID: On Tue, 30 Mar 2021 12:26:11 GMT, Aleksey Shipilev wrote: > JOLSample_10_DataModels does not work properly after CODETOOLS-7902866. It only takes care of the "actual" VM layout, ignoring the defined data model. We need to make ClassLayout accept the data model. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/12 From shade at openjdk.java.net Tue Mar 30 12:59:35 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 12:59:35 GMT Subject: RFR: CODETOOLS-7902868: JOL: Rework JOL Samples for modern JDKs Message-ID: <25jsvl6X6owY61CUbC6GX5fyriszHcjdDm1sQ5mytoM=.a1f1bbc1-69c3-49a8-bce9-e9bdea008d7a@github.com> Current JOL samples were written in the era of JDK 8. Since then, quite a few improvements landed in JVMs, and we need to update the samples to reflect those. ------------- Commit messages: - Fix builds - Add missing files - Revert again - Revert after merge - Merge branch 'master' into samples-overhaul - Overhaul JOL Samples Changes: https://git.openjdk.java.net/jol/pull/13/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=13&range=00 Issue: https://bugs.openjdk.java.net/browse/CODETOOLS-7902868 Stats: 751 lines in 32 files changed: 399 ins; 309 del; 43 mod Patch: https://git.openjdk.java.net/jol/pull/13.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/13/head:pull/13 PR: https://git.openjdk.java.net/jol/pull/13 From shade at openjdk.java.net Tue Mar 30 16:56:38 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 16:56:38 GMT Subject: RFR: CODETOOLS-7902868: JOL: Rework JOL Samples for modern JDKs [v2] In-Reply-To: <25jsvl6X6owY61CUbC6GX5fyriszHcjdDm1sQ5mytoM=.a1f1bbc1-69c3-49a8-bce9-e9bdea008d7a@github.com> References: <25jsvl6X6owY61CUbC6GX5fyriszHcjdDm1sQ5mytoM=.a1f1bbc1-69c3-49a8-bce9-e9bdea008d7a@github.com> Message-ID: > Current JOL samples were written in the era of JDK 8. Since then, quite a few improvements landed in JVMs, and we need to update the samples to reflect those. Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision: - Reshuffle test order - Contended without explicit imports ------------- Changes: - all: https://git.openjdk.java.net/jol/pull/13/files - new: https://git.openjdk.java.net/jol/pull/13/files/7fe001b8..b811c002 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jol&pr=13&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jol&pr=13&range=00-01 Stats: 77 lines in 14 files changed: 60 ins; 1 del; 16 mod Patch: https://git.openjdk.java.net/jol/pull/13.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/13/head:pull/13 PR: https://git.openjdk.java.net/jol/pull/13 From duke at openjdk.java.net Tue Mar 30 17:02:47 2021 From: duke at openjdk.java.net (duke) Date: Tue, 30 Mar 2021 17:02:47 GMT Subject: git: openjdk/jol: CODETOOLS-7902868: JOL: Rework JOL Samples for modern JDKs Message-ID: <769e479e-1735-4cd2-b1e4-d5e53ec16ce3@openjdk.java.net> Changeset: 7ef9c724 Author: Aleksey Shipil?v Committer: GitHub Date: 2021-03-30 19:02:22 +0000 URL: https://git.openjdk.java.net/jol/commit/7ef9c724 CODETOOLS-7902868: JOL: Rework JOL Samples for modern JDKs = jol-samples/src/main/java/jdk/internal/vm/annotation/Contended.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_01_Basic.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_02_Alignment.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_03_Packing.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_04_Inheritance.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_05_InheritanceBarrier.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_05_SuperGaps.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_06_Gaps.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_06_HierarchyGaps.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_07_Exceptions.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_08_Class.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_09_Contended.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_10_DataModels.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_11_ClassWord.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_12_BiasedLocking.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_12_ThinLocking.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_13_BiasedLocking.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_13_ThinLocking.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_14_FatLocking.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_15_IdentityHashCode.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_16_IHC_BL_Conflict.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_17_Allocation.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_17_ArrayLength.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_18_ArrayAlignment.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_19_AL_LL.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_19_Promotion.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_20_Allocation.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_21_Arrays.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_21_Layouts.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_22_Promotion.java - jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_23_Defragmentation.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_23_Roots.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_24_Arrays.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_25_Compaction.java + jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_26_Defragmentation.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_27_Colocation.java = jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_28_Difference.java From shade at openjdk.java.net Tue Mar 30 17:05:21 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 17:05:21 GMT Subject: Withdrawn: CODETOOLS-7902868: JOL: Rework JOL Samples for modern JDKs In-Reply-To: <25jsvl6X6owY61CUbC6GX5fyriszHcjdDm1sQ5mytoM=.a1f1bbc1-69c3-49a8-bce9-e9bdea008d7a@github.com> References: <25jsvl6X6owY61CUbC6GX5fyriszHcjdDm1sQ5mytoM=.a1f1bbc1-69c3-49a8-bce9-e9bdea008d7a@github.com> Message-ID: On Tue, 30 Mar 2021 12:52:19 GMT, Aleksey Shipilev wrote: > Current JOL samples were written in the era of JDK 8. Since then, quite a few improvements landed in JVMs, and we need to update the samples to reflect those. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/13 From shade at openjdk.java.net Tue Mar 30 17:51:33 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 17:51:33 GMT Subject: RFR: CODETOOLS-7902869: JOL: Support JDK 15+ field layouter simulation Message-ID: JDK-8237767 added a new layouter. JOL needs to simulate it as well. ------------- Commit messages: - Minor cleanup - Merge branch 'master' into jdk15-layouter - Add JDK 15 Hotspot layouter simulation Changes: https://git.openjdk.java.net/jol/pull/14/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=14&range=00 Issue: https://bugs.openjdk.java.net/browse/CODETOOLS-7902869 Stats: 169 lines in 9 files changed: 130 ins; 15 del; 24 mod Patch: https://git.openjdk.java.net/jol/pull/14.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/14/head:pull/14 PR: https://git.openjdk.java.net/jol/pull/14 From duke at openjdk.java.net Tue Mar 30 18:01:17 2021 From: duke at openjdk.java.net (duke) Date: Tue, 30 Mar 2021 18:01:17 GMT Subject: git: openjdk/jol: CODETOOLS-7902869: JOL: Support JDK 15+ field layouter simulation Message-ID: Changeset: 320f2ee7 Author: Aleksey Shipil?v Committer: GitHub Date: 2021-03-30 20:00:48 +0000 URL: https://git.openjdk.java.net/jol/commit/320f2ee7 CODETOOLS-7902869: JOL: Support JDK 15+ field layouter simulation ! jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpStats.java ! jol-cli/src/main/java/org/openjdk/jol/operations/ObjectEstimates.java ! jol-cli/src/main/java/org/openjdk/jol/operations/StringCompress.java ! jol-core/src/main/java/org/openjdk/jol/info/ClassData.java ! jol-core/src/main/java/org/openjdk/jol/info/FieldData.java ! jol-core/src/main/java/org/openjdk/jol/layouters/HotSpotLayouter.java ! jol-core/src/test/java/org/openjdk/jol/layouters/HotspotLayouterRealTest.java ! jol-core/src/test/java/org/openjdk/jol/layouters/LayouterInvariantsTest.java ! jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_10_DataModels.java From shade at openjdk.java.net Tue Mar 30 18:03:18 2021 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 30 Mar 2021 18:03:18 GMT Subject: Withdrawn: CODETOOLS-7902869: JOL: Support JDK 15+ field layouter simulation In-Reply-To: References: Message-ID: On Tue, 30 Mar 2021 17:47:28 GMT, Aleksey Shipilev wrote: > JDK-8237767 added a new layouter. JOL needs to simulate it as well. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/14 From shade at redhat.com Wed Mar 31 08:22:29 2021 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 31 Mar 2021 10:22:29 +0200 Subject: JOL 0.15 Message-ID: Hi, JOL 0.14 is released and available on Maven Central. This release ships with multiple performance and compatibility fixes. *) ClassLayout now prints the detailed information on object headers: decoding mark words, printing class word, array length, etc 7902866: JOL: Rework the instance dump output: formatting, decoding mark/class words, array length 7902867: JOL: Use defined data model to print the header in class layout *) Layout simulations (for example, "estimates") are now able to simulate JDK 15+ field layouter 7902869: JOL: Support JDK 15+ field layouter simulation *) Lots of performance improvements for graph walking: better field caching, better stack management, etc. - Use shared ClassValue for caching resolved Class fields - Eagerly do setAccessible(true) on first Field resolves in walkers - Optimize MathUtil.align to avoid modulo/division - Replace ArrayDeque with SimpleStack *) New GraphStats, a lightweight version of GraphLayout https://github.com/openjdk/jol/commit/c928a570665ba203f0b1ba8b4a6f87bdf1c10232 *) Some fixes for SonarCloud warnings 7902835: JOL: ObjectShapes.processJAR should close resources properly 7902836: JOL: Fix incorrect implicit numeric promotions *) JOL Samples are reworked to capture VM improvements since JDK 8 7902868: JOL: Rework JOL Samples for modern JDKs Enjoy! -- Thanks, -Aleksey From shade at redhat.com Wed Mar 31 08:24:29 2021 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 31 Mar 2021 10:24:29 +0200 Subject: JOL 0.15 In-Reply-To: References: Message-ID: On 3/31/21 10:22 AM, Aleksey Shipilev wrote: > JOL 0.14 is released That is 0.15, of course. -- Thanks, -Aleksey From duke at openjdk.java.net Wed Mar 31 09:00:27 2021 From: duke at openjdk.java.net (duke) Date: Wed, 31 Mar 2021 09:00:27 GMT Subject: git: openjdk/jol: 2 new changesets Message-ID: Changeset: e4fe57da Author: Aleksey Shipilev Date: 2021-03-31 08:03:02 +0000 URL: https://git.openjdk.java.net/jol/commit/e4fe57da JOL v0.15. ! jol-benchmarks/pom.xml ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml Changeset: d48aa917 Author: Aleksey Shipilev Date: 2021-03-31 08:03:19 +0000 URL: https://git.openjdk.java.net/jol/commit/d48aa917 Continue in 0.16-SNAPSHOT ! jol-benchmarks/pom.xml ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml