RFR: 8293170: Improve encoding of the debuginfo nmethod section [v18]
John Rose
john.r.rose at oracle.com
Thu Jan 18 00:34:46 UTC 2024
Thanks for your patience, and for the useful conversations at JVMLS.
I’ve been thinking for a while, “what is the right way to suppress
zeroes in Hotspot’s compressed metadata”? Also, “what are good
ways to encourage zeroes, if you know you can get rid of them
in the end?”
Over the break I implemented a zero-suppression scheme that
integrates well with UNSIGNED5, and hunted around for use cases.
I ended up with this, FTR. I’m not proposing it seriously yet,
but I think it has some benefits.
https://github.com/openjdk/jdk/pull/17474
On 22 Dec 2022, at 12:24, John R Rose wrote:
> On Thu, 15 Dec 2022 13:51:45 GMT, Boris Ulasevich <bulasevich at openjdk.org> wrote:
>
>>> The nmethod "scopes data" section is 10% of the size of nmethod. Now the data is compressed using the Pack200 algorithm, which is good for encoding small integers (LineNumberTable, etc). Using the fact that half of the data in the partition contains zeros, I reduce its size by another 30%.
>>>
>>> Testing: jtreg hotspot&jdk, Renaissance benchmarks
>>
>> Boris Ulasevich has updated the pull request incrementally with one additional commit since the last revision:
>>
>> cleanup, rename and some testing
>
> P.S. One reason I know about the Capn Proto packing is as a candidate for fast streaming (de)compression of heap snapshots. We don't have that feature today, but may in the future for CDS and/or Leyden, and all of my arguments about using off-the-shelf techniques will apply there as well.
>
> -------------
>
> PR: https://git.openjdk.org/jdk/pull/10025
More information about the hotspot-compiler-dev
mailing list