JOL 0.10

Sergey Ponomarev stokito at gmail.com
Sat Jan 25 08:02:23 UTC 2020


Good Morning, Aleksey and thank you for the release.

Currently the sources trunk all pom.xml files have a fixed version 0.10
(i.e. the release version) while it should be 0.11-SNAPSHOT.
Maven's release plugin makes the version increment and makes a commit.

I also updated the jol-core.jar in JOL Intellij Idea Plugin
https://plugins.jetbrains.com/plugin/10953-jol-java-object-layout so in two
days you can try it.
But I also I would like to ask you to make some changes in JOL because now
do have to maintain my own patched fork:
https://github.com/stokito/jol/commits/extend_api (extend_api branch)

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 myself
2. Added lossesInternal lossesExternal lossesTotal fields to ClassLayout so
they calculated only once on instance creation and then can be accessed
multiple times
3. Various small improvements like some tests, additional methods etc.

Could you please cherry pick these changes?
AFIK the Idea Jol is the only software that uses JOL as library so any
changes that I needed to make with high possibility will be needed for
others.
If this matters I already signed Oracle contributor agreement and I'm JCP
member so my changes can be accepted.

Thank you


On Fri, 24 Jan 2020 at 12:08, Aleksey Shipilev <shade at redhat.com> wrote:

> Hi,
>
> JOL 0.10 is released and available on Maven Central. This is performance
> improvement release, and it
> brings these changes forward:
>
>  *) Massive performance improvements in GraphLayout. It used to take 1..3K
> of memory and ~500 ns of
> time per tracked object. Now it takes about 120 bytes and 100..300 ns per
> tracked object, depending
> on what you are doing. Tracked by:
>   7902581: Optimize graph walk: cache class field list, cleaner path
> recording, remove
>   7902582: GraphLayout processing should be lazy
>   7902583: GraphPathRecord.size() should be lazy
>
>  *) Bugfixes:
>   7902371: JOL hangs with empty classpath
>   7902580: GraphLayout counts duplicate roots multiple times
>
>  *) JMH-based benchmarking infra:
>   7902579: JOL benchmarks
>
>  *) Build maintenance: JOL requires JDK 7, and builds/runs with everything
> from JDK 7 to JDK 14.
>   7902368: JOL should be buildable with JDK 11, 12, 13
>   7902367: JOL should use upgraded plugins to be compatible with JDK 11,
> 12, 13
>   7902366: JOL should bump source/target to 7
>
> Enjoy. Next release would hopefully look into integration problems
> reported on this list.
>
> As usual, the runnable jol-cli bundle is here:
>
> https://repo.maven.apache.org/maven2/org/openjdk/jol/jol-cli/0.10/jol-cli-0.10-full.jar
>
> --
> Thanks,
> -Aleksey
>
>

-- 
Sergey Ponomarev <https://linkedin.com/in/stokito>, skype:stokito


More information about the jol-dev mailing list