From duke at openjdk.java.net Fri Oct 2 07:48:50 2020 From: duke at openjdk.java.net (duke) Date: Fri, 2 Oct 2020 07:48:50 GMT Subject: git: openjdk/jol: 2 new changesets Message-ID: <730a7e2a-4436-4aa0-bafa-0e10bd6cebb2@openjdk.java.net> Changeset: 3e437b77 Author: Aleksey Shipilev Date: 2020-10-02 09:47:17 +0000 URL: https://git.openjdk.java.net/jol/commit/3e437b77 Temporarily relax the pre-integration check to 1 committer ! .jcheck/conf Changeset: 73eefe41 Author: Aleksey Shipilev Date: 2020-10-02 09:47:32 +0000 URL: https://git.openjdk.java.net/jol/commit/73eefe41 Fix the URL and SCM after move to Git ! pom.xml From duke at openjdk.java.net Tue Oct 6 09:02:57 2020 From: duke at openjdk.java.net (duke) Date: Tue, 6 Oct 2020 09:02:57 GMT Subject: git: openjdk/jol: JOL Pre-Integration Tests workflow (#5) Message-ID: <6c0d40d1-0169-4c98-b1aa-36a35c5bf9d4@openjdk.java.net> Changeset: cba9e5c7 Author: Aleksey Shipilev Committer: GitHub Date: 2020-10-06 11:02:25 +0000 URL: https://git.openjdk.java.net/jol/commit/cba9e5c7 JOL Pre-Integration Tests workflow (#5) + .github/workflows/pre-integration.yml ! README.md From shade at openjdk.java.net Tue Oct 6 09:13:47 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 09:13:47 GMT Subject: RFR: Fix maven-surefire-plugin version Message-ID: Maven complains otherwise: [WARNING] [WARNING] Some problems were encountered while building the effective model for org.openjdk.jol:jol-core:jar:0.14-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ org.openjdk.jol:jol-core:[unknown-version], /home/shade/temp/jol/jol/jol-core/pom.xml, line 66, column 21 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. ------------- Commit messages: - Fix maven-surefire-plugin version Changes: https://git.openjdk.java.net/jol/pull/6/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=6&range=00 Stats: 5 lines in 1 file changed: 5 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jol/pull/6.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/6/head:pull/6 PR: https://git.openjdk.java.net/jol/pull/6 From duke at openjdk.java.net Tue Oct 6 09:14:28 2020 From: duke at openjdk.java.net (duke) Date: Tue, 6 Oct 2020 09:14:28 GMT Subject: git: openjdk/jol: Additionally trigger pre-integration checks on PR open, reopen, review_requested Message-ID: <081792de-b516-45ef-92ab-e545c78d0a69@openjdk.java.net> Changeset: 71652244 Author: Aleksey Shipilev Date: 2020-10-06 11:13:27 +0000 URL: https://git.openjdk.java.net/jol/commit/71652244 Additionally trigger pre-integration checks on PR open,reopen,review_requested ! .github/workflows/pre-integration.yml From shade at openjdk.java.net Tue Oct 6 09:18:50 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 09:18:50 GMT Subject: RFR: Fix maven-surefire-plugin version [v2] In-Reply-To: References: Message-ID: <4CNONMFzkhoMegrFUtVW9rmk_7N6MEshgewGyexjkPg=.f07ed7e8-fbc6-4ee3-865e-1583d728ceb0@github.com> > Maven complains otherwise: > > [WARNING] > [WARNING] Some problems were encountered while building the effective model for > org.openjdk.jol:jol-core:jar:0.14-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for > org.apache.maven.plugins:maven-surefire-plugin is missing. @ org.openjdk.jol:jol-core:[unknown-version], > /home/shade/temp/jol/jol/jol-core/pom.xml, line 66, column 21 [WARNING] [WARNING] It is highly recommended to fix > these problems because they threaten the stability of your build. [WARNING] > [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains one commit: Fix maven-surefire-plugin version ------------- Changes: https://git.openjdk.java.net/jol/pull/6/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=6&range=01 Stats: 5 lines in 1 file changed: 5 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jol/pull/6.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/6/head:pull/6 PR: https://git.openjdk.java.net/jol/pull/6 From duke at openjdk.java.net Tue Oct 6 09:50:49 2020 From: duke at openjdk.java.net (duke) Date: Tue, 6 Oct 2020 09:50:49 GMT Subject: git: openjdk/jol: 4 new changesets Message-ID: <21180b16-1a2e-4d1f-96e2-da940b47173f@openjdk.java.net> Changeset: b97b59a4 Author: Aleksey Shipilev Date: 2020-10-06 11:30:54 +0000 URL: https://git.openjdk.java.net/jol/commit/b97b59a4 Also test JDK 7 during pre-integration checks ! .github/workflows/pre-integration.yml Changeset: b60fefd2 Author: Aleksey Shipilev Date: 2020-10-06 11:43:33 +0000 URL: https://git.openjdk.java.net/jol/commit/b60fefd2 Parallel jol-cli tests ! jol-core/pom.xml Changeset: 4e4f7932 Author: Aleksey Shipilev Date: 2020-10-06 11:49:30 +0000 URL: https://git.openjdk.java.net/jol/commit/4e4f7932 Optimize LayouterInvariantsTest ! jol-core/src/test/java/org/openjdk/jol/layouters/LayouterInvariantsTest.java Changeset: 53cad6f7 Author: Aleksey Shipilev Committer: GitHub Date: 2020-10-06 11:50:17 +0000 URL: https://git.openjdk.java.net/jol/commit/53cad6f7 Fix maven-surefire-plugin version (#6) ! pom.xml From shade at openjdk.java.net Tue Oct 6 09:52:46 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 09:52:46 GMT Subject: Withdrawn: Fix maven-surefire-plugin version In-Reply-To: References: Message-ID: On Tue, 6 Oct 2020 09:10:02 GMT, Aleksey Shipilev wrote: > Maven complains otherwise: > > [WARNING] > [WARNING] Some problems were encountered while building the effective model for > org.openjdk.jol:jol-core:jar:0.14-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for > org.apache.maven.plugins:maven-surefire-plugin is missing. @ org.openjdk.jol:jol-core:[unknown-version], > /home/shade/temp/jol/jol/jol-core/pom.xml, line 66, column 21 [WARNING] [WARNING] It is highly recommended to fix > these problems because they threaten the stability of your build. [WARNING] > [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jol/pull/6 From duke at openjdk.java.net Tue Oct 6 10:42:26 2020 From: duke at openjdk.java.net (duke) Date: Tue, 6 Oct 2020 10:42:26 GMT Subject: git: openjdk/jol: Make sure pre-integration workflow builds and uses all SNAPSHOT dependencies Message-ID: <4686c73f-7faa-42a1-b487-47957a72a263@openjdk.java.net> Changeset: 3a32048d Author: Aleksey Shipilev Date: 2020-10-06 12:40:32 +0000 URL: https://git.openjdk.java.net/jol/commit/3a32048d Make sure pre-integration workflow builds and uses all SNAPSHOT dependencies ! .github/workflows/pre-integration.yml From duke at openjdk.java.net Tue Oct 6 12:01:33 2020 From: duke at openjdk.java.net (duke) Date: Tue, 6 Oct 2020 12:01:33 GMT Subject: git: openjdk/jol: Drop max-parallel from pre-integration workflow Message-ID: Changeset: ccfc5403 Author: Aleksey Shipilev Date: 2020-10-06 14:01:00 +0000 URL: https://git.openjdk.java.net/jol/commit/ccfc5403 Drop max-parallel from pre-integration workflow ! .github/workflows/pre-integration.yml From github.com+415502+stokito at openjdk.java.net Tue Oct 6 14:55:15 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 14:55:15 GMT Subject: RFR: Extend API to support JOL IntelliJ Idea plugin Message-ID: [JOL Intellij Idea Plugin](https://github.com/stokito/IdeaJol) internally uses JOL. Internally in the [PsiClassAdapter](https://github.com/stokito/IdeaJol/blob/master/src/main/java/com/github/stokito/IdeaJol/PsiClassAdapter.java) it makes exactly the same as `org.openjdk.jol.info.ClassData#parse` but it creates the ClassData from Idea's AST/Psi tree instead of raw `Class`. Unfortunately to be able to do this we need to extend API a little bit. Here is a short list of changes that I did: 1. Added an overloaded method ClassData.addSuperClassData(ClassData) so I can create an instance of `ClassData` 2. Added `lossesInternal`, `lossesExternal` and `lossesTotal` fields to `ClassLayout` so they calculated only once on instance creation and then can be accessed multiple times via geters by JTable 3. `FieldData.create()` internally evaluate if the field is contended but we do this based on Psi tree. So we need to open and make public the `FieldData` constructor. ------------- Commit messages: - ClassLayout: rename createClassLayout() to create() - ClassLayout: add javadocs - FieldData: expose full FieldData.create() constructor - ClassLayout: rename loses variables for clearness - ClassDataTest: add newline - ClassLayout: calculate loosed bytes inside of createClassLayout() - ClassLayout: call checkInvariants() from createClassLayout() instead of constructor - Replace ClassLayout constructor with factory method - ClassData: Return List instead of Collection - ClassData: introduce addSuperClassData(ClassData) Changes: https://git.openjdk.java.net/jol/pull/4/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=4&range=00 Stats: 196 lines in 7 files changed: 169 ins; 10 del; 17 mod Patch: https://git.openjdk.java.net/jol/pull/4.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/4/head:pull/4 PR: https://git.openjdk.java.net/jol/pull/4 From shade at openjdk.java.net Tue Oct 6 14:55:16 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 14:55:16 GMT Subject: RFR: Extend API to support JOL IntelliJ Idea plugin In-Reply-To: References: Message-ID: On Wed, 30 Sep 2020 13:31:03 GMT, Sergey Ponomarev wrote: > [JOL Intellij Idea Plugin](https://github.com/stokito/IdeaJol) internally uses JOL. > Internally in the > [PsiClassAdapter](https://github.com/stokito/IdeaJol/blob/master/src/main/java/com/github/stokito/IdeaJol/PsiClassAdapter.java) > it makes exactly the same as `org.openjdk.jol.info.ClassData#parse` but it creates the ClassData from Idea's AST/Psi > tree instead of raw `Class`. Unfortunately to be able to do this we need to extend API a little bit. Here is a short > list of changes that I did: 1. Added an overloaded method ClassData.addSuperClassData(ClassData) so I can create an > instance of `ClassData` 2. Added `lossesInternal`, `lossesExternal` and `lossesTotal` fields to `ClassLayout` so they > calculated only once on instance creation and then can be accessed multiple times via geters by JTable 3. > `FieldData.create()` internally evaluate if the field is contended but we do this based on Psi tree. So we need to open > and make public the `FieldData` constructor. Looks sensible. Please rename the PR to e.g. "Extend API to support JOL IntelliJ Idea plugin"? This looks fine. Again, I'll integrate once OCA and other integration blockers resolve and bots allow me to integrate. jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java line 130: > 128: * @param check whether to check important invariants > 129: */ > 130: public static ClassLayout createClassLayout(ClassData classData, SortedSet fields, int > headerSize, long instanceSize, boolean check) { `ClassLayout.createClassLayout` seems tautological, maybe `ClassLayout.create`? jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java line 145: > 143: } > 144: long lossesExternal = instanceSize != nextFree ? instanceSize - nextFree : 0; > 145: long lossesTotal = lossesInternal + lossesExternal; I think this whole block would be more readable if we shorten the variable names. long next = headerSize; long internal = 0; for (FieldLayout fl : fields) { if (fl.offset() > nextFree) { internal += fl.offset() - nextFree; } next = fl.offset() + fl.size(); } long external = (instanceSize != next) ? (instanceSize - next) : 0; long total = internal + external; jol-core/src/test/java/org/openjdk/jol/info/ClassDataTest.java line 93: > 91: assertTrue(classFields.isEmpty()); > 92: } > 93: } Add a newline at the end of file. jol-core/src/main/java/org/openjdk/jol/info/FieldData.java line 77: > 75: private final String contendedGroup; > 76: > 77: public FieldData(Field refField, String hostKlass, String fieldName, String fieldType, Don't you want to add the overloaded `FieldData.create` instead? ------------- Changes requested by shade (Committer). PR: https://git.openjdk.java.net/jol/pull/4Marked as reviewed by shade (Committer). From github.com+415502+stokito at openjdk.java.net Tue Oct 6 14:55:17 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 14:55:17 GMT Subject: RFR: Extend API to support JOL IntelliJ Idea plugin In-Reply-To: References: Message-ID: On Thu, 1 Oct 2020 07:40:09 GMT, Aleksey Shipilev wrote: >> [JOL Intellij Idea Plugin](https://github.com/stokito/IdeaJol) internally uses JOL. >> Internally in the >> [PsiClassAdapter](https://github.com/stokito/IdeaJol/blob/master/src/main/java/com/github/stokito/IdeaJol/PsiClassAdapter.java) >> it makes exactly the same as `org.openjdk.jol.info.ClassData#parse` but it creates the ClassData from Idea's AST/Psi >> tree instead of raw `Class`. Unfortunately to be able to do this we need to extend API a little bit. Here is a short >> list of changes that I did: 1. Added an overloaded method ClassData.addSuperClassData(ClassData) so I can create an >> instance of `ClassData` 2. Added `lossesInternal`, `lossesExternal` and `lossesTotal` fields to `ClassLayout` so they >> calculated only once on instance creation and then can be accessed multiple times via geters by JTable 3. >> `FieldData.create()` internally evaluate if the field is contended but we do this based on Psi tree. So we need to open >> and make public the `FieldData` constructor. > > Looks sensible. Please rename the PR to e.g. "Extend API to support JOL IntelliJ Idea plugin"? I fixed all your review comments but I wondered that I'm not listed as signed OCA. I'll sign it again but this may take for weeks > jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java line 145: > >> 143: } >> 144: long lossesExternal = instanceSize != nextFree ? instanceSize - nextFree : 0; >> 145: long lossesTotal = lossesInternal + lossesExternal; > > I think this whole block would be more readable if we shorten the variable names. > > long next = headerSize; > long internal = 0; > for (FieldLayout fl : fields) { > if (fl.offset() > nextFree) { > internal += fl.offset() - nextFree; > } > next = fl.offset() + fl.size(); > } > long external = (instanceSize != next) ? (instanceSize - next) : 0; > long total = internal + external; ok, I just kept original variable names for more clear history ------------- PR: https://git.openjdk.java.net/jol/pull/4 From shade at openjdk.java.net Tue Oct 6 14:55:18 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 14:55:18 GMT Subject: RFR: Extend API to support JOL IntelliJ Idea plugin In-Reply-To: References: Message-ID: <_Uyu05ZoQhE0oYiROh274IHlQwkk1n0jnbOf67ZPz6Q=.036ba24c-5c7e-43d7-b386-be23bbeab970@github.com> On Thu, 1 Oct 2020 09:27:59 GMT, Aleksey Shipilev wrote: >> [JOL Intellij Idea Plugin](https://github.com/stokito/IdeaJol) internally uses JOL. >> Internally in the >> [PsiClassAdapter](https://github.com/stokito/IdeaJol/blob/master/src/main/java/com/github/stokito/IdeaJol/PsiClassAdapter.java) >> it makes exactly the same as `org.openjdk.jol.info.ClassData#parse` but it creates the ClassData from Idea's AST/Psi >> tree instead of raw `Class`. Unfortunately to be able to do this we need to extend API a little bit. Here is a short >> list of changes that I did: 1. Added an overloaded method ClassData.addSuperClassData(ClassData) so I can create an >> instance of `ClassData` 2. Added `lossesInternal`, `lossesExternal` and `lossesTotal` fields to `ClassLayout` so they >> calculated only once on instance creation and then can be accessed multiple times via geters by JTable 3. >> `FieldData.create()` internally evaluate if the field is contended but we do this based on Psi tree. So we need to open >> and make public the `FieldData` constructor. > > This looks fine. Again, I'll integrate once OCA and other integration blockers resolve and bots allow me to integrate. @stokito, could you please merge/rebase off the current `master`? It includes the automatically-triggered workflow with pre-integration checks. > jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java line 130: > >> 128: * @param check whether to check important invariants >> 129: */ >> 130: public static ClassLayout createClassLayout(ClassData classData, SortedSet fields, int >> headerSize, long instanceSize, boolean check) { > > `ClassLayout.createClassLayout` seems tautological, maybe `ClassLayout.create`? This also matches e.g. `FieldData.create`. ------------- PR: https://git.openjdk.java.net/jol/pull/4 From github.com+415502+stokito at openjdk.java.net Tue Oct 6 14:56:20 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 14:56:20 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup Message-ID: I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. ------------- Commit messages: - FieldLayout: Extract classShortName() - samples: @Contended also may have a value - Fix incorrect usage of Assert.assertNotSame() and use assertNotEquals() instead - HeapDumpStats: create sorted variable by copying constructor - Migrate from junit.framework.Assert to org.junit.Assert - README.md: use https for link Changes: https://git.openjdk.java.net/jol/pull/3/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=3&range=00 Stats: 30 lines in 11 files changed: 17 ins; 2 del; 11 mod Patch: https://git.openjdk.java.net/jol/pull/3.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/3/head:pull/3 PR: https://git.openjdk.java.net/jol/pull/3 From shade at openjdk.java.net Tue Oct 6 14:56:22 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 14:56:22 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Wed, 30 Sep 2020 12:05:13 GMT, Sergey Ponomarev wrote: > I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. Thanks. It feels like some of these changes are unnecessary. Looks fine, thanks. I'll integrate once bots clear the OCA mess. jol-cli/src/main/java/org/openjdk/jol/OptionFormatter.java line 77: > 75: StringBuilder line = new StringBuilder(150); > 76: > 77: StringBuilder o = new StringBuilder(32); This is not performance-critical code, let's not over-optimize here. jol-cli/src/main/java/org/openjdk/jol/OptionFormatter.java line 43: > 41: > 42: public String format(Map options) { > 43: StringBuilder sb = new StringBuilder(400); This is not performance-critical, let's not over-optimize. jol-core/src/main/java/org/openjdk/jol/info/FieldLayout.java line 97: > 95: public String shortFieldName() { > 96: String classShortName = classShortName(); > 97: return classShortName + "." + name(); Inline `classShortName`? jol-core/src/main/java/org/openjdk/jol/info/FieldLayout.java line 103: > 101: String cl = hostClass(); > 102: int idx = cl.lastIndexOf("."); > 103: return idx != -1 && idx < cl.length() ? cl.substring(idx + 1) : cl; Took me a while to recognize the ternary statement here. Should at least have parentheses? return (idx != -1 && idx < cl.length()) ? cl.substring(idx + 1) : cl; Or maybe don't do this at all, and leave the if block: if (idx != -1 && idx < cl.length()) { return cl.substring(idx + 1) } else { return cl; } jol-samples/src/main/java/sun/misc/Contended.java line 40: > 38: @Target(ElementType.FIELD) > 39: @Retention(RetentionPolicy.RUNTIME) > 40: public @interface Contended { String value() default ""; `value()` should be on new line? jol-cli/src/main/java/org/openjdk/jol/operations/StringCompress.java line 97: > 95: } > 96: > 97: List> res = new ArrayList<>(args.length); This does not look performance-sensitive, let's not over-optimize. ------------- Changes requested by shade (Committer). PR: https://git.openjdk.java.net/jol/pull/3Marked as reviewed by shade (Committer). From github.com+415502+stokito at openjdk.java.net Tue Oct 6 14:56:22 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 14:56:22 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Wed, 30 Sep 2020 12:05:13 GMT, Sergey Ponomarev wrote: > I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. Fixed all comments ------------- PR: https://git.openjdk.java.net/jol/pull/3 From robilad at openjdk.java.net Tue Oct 6 14:56:22 2020 From: robilad at openjdk.java.net (Dalibor Topic) Date: Tue, 6 Oct 2020 14:56:22 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Thu, 1 Oct 2020 08:33:29 GMT, Aleksey Shipilev wrote: >> I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. > > Looks fine, thanks. I'll integrate once bots clear the OCA mess. I sent an OCA account check mail yesterday. Once I hear back from the user the bot can link their account in Skara, remove the check, and they will be good to go. ------------- PR: https://git.openjdk.java.net/jol/pull/3 From robilad at openjdk.java.net Tue Oct 6 14:56:22 2020 From: robilad at openjdk.java.net (Dalibor Topic) Date: Tue, 6 Oct 2020 14:56:22 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Thu, 1 Oct 2020 10:33:09 GMT, Dalibor Topic wrote: >> Looks fine, thanks. I'll integrate once bots clear the OCA mess. > > I sent an OCA account check mail yesterday. Once I hear back from the user the bot can link their account in Skara, > remove the check, and they will be good to go. I didn't see a reply yet, so I sent another mail today. ------------- PR: https://git.openjdk.java.net/jol/pull/3 From shade at openjdk.java.net Tue Oct 6 14:56:22 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 14:56:22 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Mon, 5 Oct 2020 17:28:07 GMT, Dalibor Topic wrote: > I didn't see a reply yet, so I sent another mail today. @robilad, are you sending this mail to @stokito? Maybe we should ask him to check Spam folder or some such? ------------- PR: https://git.openjdk.java.net/jol/pull/3 From shade at openjdk.java.net Tue Oct 6 14:56:23 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 14:56:23 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Thu, 1 Oct 2020 08:32:13 GMT, Sergey Ponomarev wrote: >> I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. > > Fixed all comments @stokito, could you please merge/rebase off the current `master`? It includes the automatically-triggered workflow with pre-integration checks. ------------- PR: https://git.openjdk.java.net/jol/pull/3 From robilad at openjdk.java.net Tue Oct 6 14:56:23 2020 From: robilad at openjdk.java.net (Dalibor Topic) Date: Tue, 6 Oct 2020 14:56:23 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Thu, 1 Oct 2020 08:32:13 GMT, Sergey Ponomarev wrote: >> I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. > > Fixed all comments @stokito please send an email with your OCA data to dalibor.topic at oracle.com - my attempts to reach you seem to be not have been fruitful yet. Thanks! ------------- PR: https://git.openjdk.java.net/jol/pull/3 From github.com+415502+stokito at openjdk.java.net Tue Oct 6 14:56:23 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 14:56:23 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Tue, 6 Oct 2020 11:47:12 GMT, Dalibor Topic wrote: >> Fixed all comments > > @stokito please send an email with your OCA data to dalibor.topic at oracle.com - my attempts to reach you seem to be not > have been fruitful yet. Thanks! Sorry guys, I was too busy (finished a project) and sent it only today. I resent a copy to dailbor. Will rebase now ------------- PR: https://git.openjdk.java.net/jol/pull/3 From github.com+415502+stokito at openjdk.java.net Tue Oct 6 14:56:24 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 14:56:24 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Thu, 1 Oct 2020 07:18:02 GMT, Aleksey Shipilev wrote: >> I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. > > jol-core/src/main/java/org/openjdk/jol/info/FieldLayout.java line 103: > >> 101: String cl = hostClass(); >> 102: int idx = cl.lastIndexOf("."); >> 103: return idx != -1 && idx < cl.length() ? cl.substring(idx + 1) : cl; > > Took me a while to recognize the ternary statement here. Should at least have parentheses? > > return (idx != -1 && idx < cl.length()) ? cl.substring(idx + 1) : cl; > > Or maybe don't do this at all, and leave the if block: > > if (idx != -1 && idx < cl.length()) { > return cl.substring(idx + 1) > } else { > return cl; > } right, btw the idx is always less than cl.length so the `idx < cl.length()` may be eleminated ------------- PR: https://git.openjdk.java.net/jol/pull/3 From shade at openjdk.java.net Tue Oct 6 15:02:11 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Tue, 6 Oct 2020 15:02:11 GMT Subject: RFR: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Tue, 6 Oct 2020 12:01:41 GMT, Sergey Ponomarev wrote: >> @stokito please send an email with your OCA data to dalibor.topic at oracle.com - my attempts to reach you seem to be not >> have been fruitful yet. Thanks! > > Sorry guys, I was too busy (finished a project) and sent it only today. I resent a copy to dailbor. Will rebase now @stokito, say "/integrate". ------------- PR: https://git.openjdk.java.net/jol/pull/3 From github.com+415502+stokito at openjdk.java.net Tue Oct 6 15:24:15 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 15:24:15 GMT Subject: Integrated: Minor fixes, microoptimizations and cleanup In-Reply-To: References: Message-ID: On Wed, 30 Sep 2020 12:05:13 GMT, Sergey Ponomarev wrote: > I already signed Oracle contributor agreement and I'm JCP member so my changes can be accepted. This pull request has now been integrated. Changeset: e1113443 Author: Sergey Ponomarev Committer: Aleksey Shipilev URL: https://git.openjdk.java.net/jol/commit/e1113443 Stats: 30 lines in 11 files changed: 17 ins; 2 del; 11 mod Minor fixes, microoptimizations and cleanup Reviewed-by: shade ------------- PR: https://git.openjdk.java.net/jol/pull/3 From github.com+415502+stokito at openjdk.java.net Tue Oct 6 15:25:13 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Tue, 6 Oct 2020 15:25:13 GMT Subject: Integrated: Extend API to support JOL IntelliJ Idea plugin In-Reply-To: References: Message-ID: On Wed, 30 Sep 2020 13:31:03 GMT, Sergey Ponomarev wrote: > [JOL Intellij Idea Plugin](https://github.com/stokito/IdeaJol) internally uses JOL. > Internally in the > [PsiClassAdapter](https://github.com/stokito/IdeaJol/blob/master/src/main/java/com/github/stokito/IdeaJol/PsiClassAdapter.java) > it makes exactly the same as `org.openjdk.jol.info.ClassData#parse` but it creates the ClassData from Idea's AST/Psi > tree instead of raw `Class`. Unfortunately to be able to do this we need to extend API a little bit. Here is a short > list of changes that I did: 1. Added an overloaded method ClassData.addSuperClassData(ClassData) so I can create an > instance of `ClassData` 2. Added `lossesInternal`, `lossesExternal` and `lossesTotal` fields to `ClassLayout` so they > calculated only once on instance creation and then can be accessed multiple times via geters by JTable 3. > `FieldData.create()` internally evaluate if the field is contended but we do this based on Psi tree. So we need to open > and make public the `FieldData` constructor. This pull request has now been integrated. Changeset: ae59c286 Author: Sergey Ponomarev Committer: Aleksey Shipilev URL: https://git.openjdk.java.net/jol/commit/ae59c286 Stats: 196 lines in 7 files changed: 169 ins; 10 del; 17 mod Extend API to support JOL IntelliJ Idea plugin Reviewed-by: shade ------------- PR: https://git.openjdk.java.net/jol/pull/4 From github.com+415502+stokito at openjdk.java.net Thu Oct 8 09:57:51 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Thu, 8 Oct 2020 09:57:51 GMT Subject: RFR: Minor changes Message-ID: Some non critical changes: 1. Currently the repo has `.hgignore` file but don't have a `.gitignore`. I copied it from `.hgignore` but not sure if we can remove it as not used. 2. I shamelessly added my IdeJOL plugin to README. There is also mentioned that we can create an issue here on GitHub but currently the Issues tab is disabled. The same is for JMH repo. Can you open the issues tab? 3. I noted that in `StringCompress` we have a minor bug where in println format pattern we have less placeholders than params. While investigated it turned out that it will be better to swap "model" and "hprof file" columns for better output. Now it looks like: "total", "String", "String+bool", "String+oop", "char[]-2b", "char[]-1b", "char[]-1b-comp", "savings(same)", "savings(bool)", "savings(oop)", "model", "hprof file" 3918376, 59992, 59992, 59992, 0, 0, 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X32 model, 8-byte aligned)", "~/empty.hprof" 4323184, 119984, 119984, 119984, 0, 0, 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model, 8-byte aligned)", "~/empty.hprof" 4056392, 119984, 119984, 119984, 0, 0, 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 8-byte aligned)", "~/empty.hprof" 4116336, 119984, 119984, 119984, 0, 0, 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 16-byte aligned)", "~/empty.hprof" Also I tried to add a unit test for heap dump analyzer because it currently doesn't have any coverage. The test should analyze a heap dump and compare results. But got few problems that want to discuss and since there is a closed Issues tab then I'll write it here. First if all I made a heap dump of a "Hello World" application on JDK14 and the resulted file even gzipped is more than 900Kb. I don't want to add such a big file into test resources. So here I see two solutions: 1. Create a synthetic heap dump with only few rows. 2. Start a small application and get it's thread dump. This wont work because each time we'll get some classes changed. Can you create a small heap dump file for a testing? Another problem I faced when tried to test `StringComprees` with my empty thread dump and got an exception `org.openjdk.jol.heap.HeapDumpException: String.value array 34355822528 is not char[] in empty.hprof.gz, skipping` This is probably a bug in the JOL itself so I'll attach the [empty.hprof.gz](https://github.com/openjdk/jol/files/5346882/empty.hprof.gz) for you to reproduce. ------------- Commit messages: - README.md: Add related projects - README.md: add link to unresolved bugs - StringCompress: swap "model" and "hprof file" - StringCompress: histo: extend non-compressible column - .gitignore - ObjectShapes: use generic Changes: https://git.openjdk.java.net/jol/pull/7/files Webrev: https://webrevs.openjdk.java.net/?repo=jol&pr=7&range=00 Stats: 28 lines in 4 files changed: 14 ins; 0 del; 14 mod Patch: https://git.openjdk.java.net/jol/pull/7.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/7/head:pull/7 PR: https://git.openjdk.java.net/jol/pull/7 From shade at openjdk.java.net Thu Oct 8 10:09:49 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Thu, 8 Oct 2020 10:09:49 GMT Subject: RFR: Minor changes In-Reply-To: References: Message-ID: On Thu, 8 Oct 2020 09:54:23 GMT, Sergey Ponomarev wrote: > Some non critical changes: > 1. Currently the repo has `.hgignore` file but don't have a `.gitignore`. I copied it from `.hgignore` but not sure if > we can remove it as not used. 2. I shamelessly added my IdeJOL plugin to README. There is also mentioned that we can > create an issue here on GitHub but currently the Issues tab is disabled. The same is for JMH repo. Can you open the > issues tab? 3. I noted that in `StringCompress` we have a minor bug where in println format pattern we have less > placeholders than params. While investigated it turned out that it will be better to swap "model" and "hprof file" > columns for better output. Now it looks like: "total", "String", "String+bool", "String+oop", "char[]-2b", > "char[]-1b", "char[]-1b-comp", "savings(same)", "savings(bool)", > "savings(oop)", "model", "hprof file" 3918376, > 59992, 59992, 59992, 0, 0, 0, 0.000, > 0.000, 0.000, "VM Layout Simulation (X32 model, 8-byte aligned)", "~/empty.hprof" > 4323184, 119984, 119984, 119984, 0, 0, 0, > 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model, 8-byte aligned)", > "~/empty.hprof" 4056392, 119984, 119984, 119984, 0, 0, > 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 8-byte > aligned)", "~/empty.hprof" 4116336, 119984, 119984, 119984, 0, 0, > 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 16-byte > aligned)", "~/empty.hprof" Also I tried to add a unit test for heap dump analyzer because it currently doesn't have > any coverage. The test should analyze a heap dump and compare results. But got few problems that want to discuss and > since there is a closed Issues tab then I'll write it here. First if all I made a heap dump of a "Hello World" > application on JDK14 and the resulted file even gzipped is more than 900Kb. I don't want to add such a big file into > test resources. So here I see two solutions: 1. Create a synthetic heap dump with only few rows. 2. Start a small > application and get it's thread dump. This wont work because each time we'll get some classes changed. Can you create a > small heap dump file for a testing? Another problem I faced when tried to test `StringComprees` with my empty thread > dump and got an exception `org.openjdk.jol.heap.HeapDumpException: String.value array 34355822528 is not char[] in > empty.hprof.gz, skipping` This is probably a bug in the JOL itself so I'll attach the > [empty.hprof.gz](https://github.com/openjdk/jol/files/5346882/empty.hprof.gz) for you to reproduce. This looks fine, with minor comments. _In the future_, please don't hesitate to split PRs by area and have a descriptive synopsis for them. For now, changing the synopsis to something like: "Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths" is enough. Say "/integrate" once bots clear the pre-integration checks. (The previous review should have been explicit approval) README.md line 166: > 164: > 165: * [IntelliJ IDEA JOL Plugin](https://github.com/stokito/IdeaJol) can estimate object size and has an inspection to > find heavy classes 166: * Heap dump `*.hprof` files analysers: Heap dump decoding is very experimental in JOL, and hardly a target for current development. So listing heap dump analyzers looks excessive. ------------- PR: https://git.openjdk.java.net/jol/pull/7Marked as reviewed by shade (Committer). From github.com+415502+stokito at openjdk.java.net Thu Oct 8 10:36:59 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Thu, 8 Oct 2020 10:36:59 GMT Subject: RFR: Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths [v2] In-Reply-To: References: Message-ID: > Some non critical changes: > 1. Currently the repo has `.hgignore` file but don't have a `.gitignore`. I copied it from `.hgignore` but not sure if > we can remove it as not used. 2. I shamelessly added my IdeJOL plugin to README. There is also mentioned that we can > create an issue here on GitHub but currently the Issues tab is disabled. The same is for JMH repo. Can you open the > issues tab? 3. I noted that in `StringCompress` we have a minor bug where in println format pattern we have less > placeholders than params. While investigated it turned out that it will be better to swap "model" and "hprof file" > columns for better output. Now it looks like: "total", "String", "String+bool", "String+oop", "char[]-2b", > "char[]-1b", "char[]-1b-comp", "savings(same)", "savings(bool)", > "savings(oop)", "model", "hprof file" 3918376, > 59992, 59992, 59992, 0, 0, 0, 0.000, > 0.000, 0.000, "VM Layout Simulation (X32 model, 8-byte aligned)", "~/empty.hprof" > 4323184, 119984, 119984, 119984, 0, 0, 0, > 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model, 8-byte aligned)", > "~/empty.hprof" 4056392, 119984, 119984, 119984, 0, 0, > 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 8-byte > aligned)", "~/empty.hprof" 4116336, 119984, 119984, 119984, 0, 0, > 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 16-byte > aligned)", "~/empty.hprof" Also I tried to add a unit test for heap dump analyzer because it currently doesn't have > any coverage. The test should analyze a heap dump and compare results. But got few problems that want to discuss and > since there is a closed Issues tab then I'll write it here. First if all I made a heap dump of a "Hello World" > application on JDK14 and the resulted file even gzipped is more than 900Kb. I don't want to add such a big file into > test resources. So here I see two solutions: 1. Create a synthetic heap dump with only few rows. 2. Start a small > application and get it's thread dump. This wont work because each time we'll get some classes changed. Can you create a > small heap dump file for a testing? Another problem I faced when tried to test `StringComprees` with my empty thread > dump and got an exception `org.openjdk.jol.heap.HeapDumpException: String.value array 34355822528 is not char[] in > empty.hprof.gz, skipping` This is probably a bug in the JOL itself so I'll attach the > [empty.hprof.gz](https://github.com/openjdk/jol/files/5346882/empty.hprof.gz) for you to reproduce. Sergey Ponomarev has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: README.md: Add related projects Signed-off-by: Sergey Ponomarev ------------- Changes: - all: https://git.openjdk.java.net/jol/pull/7/files - new: https://git.openjdk.java.net/jol/pull/7/files/32600701..301a214a Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jol&pr=7&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jol&pr=7&range=00-01 Stats: 5 lines in 1 file changed: 0 ins; 5 del; 0 mod Patch: https://git.openjdk.java.net/jol/pull/7.diff Fetch: git fetch https://git.openjdk.java.net/jol pull/7/head:pull/7 PR: https://git.openjdk.java.net/jol/pull/7 From github.com+415502+stokito at openjdk.java.net Thu Oct 8 10:37:00 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Thu, 8 Oct 2020 10:37:00 GMT Subject: RFR: Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths [v2] In-Reply-To: References: Message-ID: On Thu, 8 Oct 2020 10:03:37 GMT, Aleksey Shipilev wrote: >> Sergey Ponomarev has refreshed the contents of this pull request, and previous commits have been removed. The >> incremental views will show differences compared to the previous content of the PR. The pull request contains one new >> commit since the last revision: >> README.md: Add related projects >> >> Signed-off-by: Sergey Ponomarev > > README.md line 166: > >> 164: >> 165: * [IntelliJ IDEA JOL Plugin](https://github.com/stokito/IdeaJol) can estimate object size and has an inspection to >> find heavy classes 166: * Heap dump `*.hprof` files analysers: > > Heap dump decoding is very experimental in JOL, and hardly a target for current development. So listing heap dump > analyzers looks excessive. Agree, still this is something that can be used to solve memory issues. For newcomers this may be time saver to see such related projects. If you think that this is excessive I'll remove the commit or left IdeaJOL only (if you don't mind) ------------- PR: https://git.openjdk.java.net/jol/pull/7 From shade at openjdk.java.net Thu Oct 8 10:37:00 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Thu, 8 Oct 2020 10:37:00 GMT Subject: RFR: Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths [v2] In-Reply-To: References: Message-ID: On Thu, 8 Oct 2020 10:28:44 GMT, Sergey Ponomarev wrote: >> README.md line 166: >> >>> 164: >>> 165: * [IntelliJ IDEA JOL Plugin](https://github.com/stokito/IdeaJol) can estimate object size and has an inspection to >>> find heavy classes 166: * Heap dump `*.hprof` files analysers: >> >> Heap dump decoding is very experimental in JOL, and hardly a target for current development. So listing heap dump >> analyzers looks excessive. > > Agree, still this is something that can be used to solve memory issues. For newcomers this may be time saver to see > such related projects. If you think that this is excessive I'll remove the commit or left IdeaJOL only (if you don't > mind) Yeah, mention IdeaJOL, don't mention hprof analyzers. ------------- PR: https://git.openjdk.java.net/jol/pull/7 From shade at openjdk.java.net Thu Oct 8 10:44:45 2020 From: shade at openjdk.java.net (Aleksey Shipilev) Date: Thu, 8 Oct 2020 10:44:45 GMT Subject: git: openjdk/jol: Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths Message-ID: Changeset: f8e61b86 Author: Sergey Ponomarev Committer: Aleksey Shipilev Date: 2020-10-08 10:44:28 +0000 URL: https://git.openjdk.java.net/jol/commit/f8e61b86 Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths Reviewed-by: shade + .gitignore ! README.md ! jol-cli/src/main/java/org/openjdk/jol/operations/ObjectShapes.java ! jol-cli/src/main/java/org/openjdk/jol/operations/StringCompress.java From github.com+415502+stokito at openjdk.java.net Thu Oct 8 10:47:48 2020 From: github.com+415502+stokito at openjdk.java.net (Sergey Ponomarev) Date: Thu, 8 Oct 2020 10:47:48 GMT Subject: Integrated: Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths In-Reply-To: References: Message-ID: <6THKaQq4zlLpGXMhCMLfitVg8O-xOxnarDmqw4jno1E=.0bdf1e4c-b085-42e2-86c4-97d363cf5846@github.com> On Thu, 8 Oct 2020 09:54:23 GMT, Sergey Ponomarev wrote: > Some non critical changes: > 1. Currently the repo has `.hgignore` file but don't have a `.gitignore`. I copied it from `.hgignore` but not sure if > we can remove it as not used. 2. I shamelessly added my IdeJOL plugin to README. There is also mentioned that we can > create an issue here on GitHub but currently the Issues tab is disabled. The same is for JMH repo. Can you open the > issues tab? 3. I noted that in `StringCompress` we have a minor bug where in println format pattern we have less > placeholders than params. While investigated it turned out that it will be better to swap "model" and "hprof file" > columns for better output. Now it looks like: "total", "String", "String+bool", "String+oop", "char[]-2b", > "char[]-1b", "char[]-1b-comp", "savings(same)", "savings(bool)", > "savings(oop)", "model", "hprof file" 3918376, > 59992, 59992, 59992, 0, 0, 0, 0.000, > 0.000, 0.000, "VM Layout Simulation (X32 model, 8-byte aligned)", "~/empty.hprof" > 4323184, 119984, 119984, 119984, 0, 0, 0, > 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model, 8-byte aligned)", > "~/empty.hprof" 4056392, 119984, 119984, 119984, 0, 0, > 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 8-byte > aligned)", "~/empty.hprof" 4116336, 119984, 119984, 119984, 0, 0, > 0, 0.000, 0.000, 0.000, "VM Layout Simulation (X64 model (compressed oops), 16-byte > aligned)", "~/empty.hprof" Also I tried to add a unit test for heap dump analyzer because it currently doesn't have > any coverage. The test should analyze a heap dump and compare results. But got few problems that want to discuss and > since there is a closed Issues tab then I'll write it here. First if all I made a heap dump of a "Hello World" > application on JDK14 and the resulted file even gzipped is more than 900Kb. I don't want to add such a big file into > test resources. So here I see two solutions: 1. Create a synthetic heap dump with only few rows. 2. Start a small > application and get it's thread dump. This wont work because each time we'll get some classes changed. Can you create a > small heap dump file for a testing? Another problem I faced when tried to test `StringComprees` with my empty thread > dump and got an exception `org.openjdk.jol.heap.HeapDumpException: String.value array 34355822528 is not char[] in > empty.hprof.gz, skipping` This is probably a bug in the JOL itself so I'll attach the > [empty.hprof.gz](https://github.com/openjdk/jol/files/5346882/empty.hprof.gz) for you to reproduce. This pull request has now been integrated. Changeset: f8e61b86 Author: Sergey Ponomarev Committer: Aleksey Shipilev URL: https://git.openjdk.java.net/jol/commit/f8e61b86 Stats: 23 lines in 4 files changed: 9 ins; 0 del; 14 mod Cleanups: README typos and links, .gitignore, leftover JDK migrations, column widths Reviewed-by: shade ------------- PR: https://git.openjdk.java.net/jol/pull/7 From duke at openjdk.java.net Fri Oct 9 17:01:34 2020 From: duke at openjdk.java.net (duke) Date: Fri, 9 Oct 2020 17:01:34 GMT Subject: git: openjdk/jol: Remove obsolete .hgignore and .hgtags Message-ID: Changeset: 89fc38e1 Author: Aleksey Shipilev Date: 2020-10-09 19:00:57 +0000 URL: https://git.openjdk.java.net/jol/commit/89fc38e1 Remove obsolete .hgignore and .hgtags - .hgignore - .hgtags From shade at redhat.com Mon Oct 12 09:18:41 2020 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 12 Oct 2020 11:18:41 +0200 Subject: JOL 0.14 Message-ID: <22372fc1-a918-6e40-5e5f-aeb5b8fdf25d@redhat.com> Hi, JOL 0.14 is released and available on Maven Central. This release is mostly to give IDEA JOL Plugin a released version to depend on. This minor release includes: *) Extend API to support JOL IntelliJ Idea plugin: https://github.com/openjdk/jol/commit/ae59c2860302ab721ac0263f3b57cb7ba41280fa *) Various fixed for typos, tests, documentation Enjoy! -- Thanks, -Aleksey From duke at openjdk.java.net Mon Oct 12 09:19:40 2020 From: duke at openjdk.java.net (duke) Date: Mon, 12 Oct 2020 09:19:40 GMT Subject: git: openjdk/jol: 2 new changesets Message-ID: Changeset: 5507a21c Author: Aleksey Shipilev Date: 2020-10-12 10:32:22 +0000 URL: https://git.openjdk.java.net/jol/commit/5507a21c JOL v0.14. ! jol-benchmarks/pom.xml ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml Changeset: f96fb2ea Author: Aleksey Shipilev Date: 2020-10-12 10:32:38 +0000 URL: https://git.openjdk.java.net/jol/commit/f96fb2ea Continue in 0.15-SNAPSHOT ! jol-benchmarks/pom.xml ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml From duke at openjdk.java.net Wed Oct 14 09:36:36 2020 From: duke at openjdk.java.net (duke) Date: Wed, 14 Oct 2020 09:36:36 GMT Subject: git: openjdk/jol: 7 new changesets Message-ID: <6aef31bf-a655-444d-beb5-208f99311711@openjdk.java.net> Changeset: c928a570 Author: Aleksey Shipilev Date: 2020-10-14 07:58:41 +0000 URL: https://git.openjdk.java.net/jol/commit/c928a570 Split out GraphStats from GraphLayout ! jol-benchmarks/src/main/java/org/openjdk/jol/LinkedChainBench.java + jol-core/src/main/java/org/openjdk/jol/info/AbstractGraphWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java + jol-core/src/main/java/org/openjdk/jol/info/GraphStats.java + jol-core/src/main/java/org/openjdk/jol/info/GraphStatsWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java + jol-core/src/test/java/org/openjdk/jol/info/GraphStatsTest.java Changeset: 92eb5c6c Author: Aleksey Shipilev Date: 2020-10-14 09:14:19 +0000 URL: https://git.openjdk.java.net/jol/commit/92eb5c6c Replace ArrayDeque with SimpleStack ! jol-core/src/main/java/org/openjdk/jol/info/AbstractGraphWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphStatsWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java + jol-core/src/main/java/org/openjdk/jol/util/SimpleStack.java + jol-core/src/test/java/org/openjdk/jol/util/SimpleQueueTest.java Changeset: fbe7a577 Author: Aleksey Shipilev Date: 2020-10-14 10:13:33 +0000 URL: https://git.openjdk.java.net/jol/commit/fbe7a577 Move internal implementation of IdentityHashSet to SimpleIdentityHashSet ! jol-core/src/main/java/org/openjdk/jol/info/AbstractGraphWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphStatsWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java + jol-core/src/main/java/org/openjdk/jol/util/SimpleIdentityHashSet.java Changeset: c47d1652 Author: Aleksey Shipilev Date: 2020-10-14 10:26:12 +0000 URL: https://git.openjdk.java.net/jol/commit/c47d1652 Optimize MathUtil.align to avoid modulo/division ! jol-core/src/main/java/org/openjdk/jol/util/MathUtil.java + jol-core/src/test/java/org/openjdk/jol/util/MathUtilTest.java Changeset: 9a98dc12 Author: Aleksey Shipilev Date: 2020-10-14 10:47:59 +0000 URL: https://git.openjdk.java.net/jol/commit/9a98dc12 Eagerly do setAccessible(true) on first Field resolves in walkers ! jol-benchmarks/src/main/java/org/openjdk/jol/LinkedChainBench.java ! jol-core/src/main/java/org/openjdk/jol/info/AbstractGraphWalker.java Changeset: 7ddad4db Author: Aleksey Shipilev Date: 2020-10-14 10:50:21 +0000 URL: https://git.openjdk.java.net/jol/commit/7ddad4db Minor cleanup ! jol-core/src/main/java/org/openjdk/jol/info/GraphStatsWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java Changeset: bcc6e9ce Author: Aleksey Shipilev Date: 2020-10-14 11:26:24 +0000 URL: https://git.openjdk.java.net/jol/commit/bcc6e9ce Use shared ClassValue for caching resolved Class fields ! jol-core/src/main/java/org/openjdk/jol/info/AbstractGraphWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphStatsWalker.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java