RFR: 8293170: Improve encoding of the debuginfo nmethod section

Boris Ulasevich bulasevich at openjdk.org
Tue Nov 15 07:05:47 UTC 2022


On Tue, 4 Oct 2022 12:58:45 GMT, Boris Ulasevich <bulasevich at openjdk.org> wrote:

>>> > What is the performance impact of making several of the methods virtual?
>>> 
>>> Good question! My experiments show that in the worst case, the performance of the debug write thread is reduced by 424->113 MB/s with virtual functions. Compared to compile time, this is miserable: сompilation takes 1000ms per method, while generation of 300 bytes of scopes data with virtual function (worst case) takes 3ms. And I do not see any regression with benchmarks.
>> 
>> I was wondering more about read performance.  I would expect that the debuginfo could be read many more times than it is written.  Also, from 424 to 113 seems like a very large slowdown.
>
>> > > What is the performance impact of making several of the methods virtual?
>> > 
>> > 
>> > Good question! My experiments show that in the worst case, the performance of the debug write thread is reduced by 424->113 MB/s with virtual functions. Compared to compile time, this is miserable: сompilation takes 1000ms per method, while generation of 300 bytes of scopes data with virtual function (worst case) takes 3ms. And I do not see any regression with benchmarks.
>> 
>> I was wondering more about read performance. I would expect that the debuginfo could be read many more times than it is written. Also, from 424 to 113 seems like a very large slowdown.
> 
> Right. With counters in virtual methods, I see that reading debug information is less frequent than writing. Anyway. Let me rewrite code without virtual functions.

> @bulasevich, Could you please add gtest unit tests checking `CompressedSparseDataWriteStream`/`CompressedSparseDataReadStream`?

Yes. Thanks

-------------

PR: https://git.openjdk.org/jdk/pull/10025


More information about the hotspot-compiler-dev mailing list