RFR: 8317432: Async UL: Do not recompute strlen()
Johan Sjölen
jsjolen at openjdk.org
Wed Oct 4 16:28:37 UTC 2023
On Wed, 4 Oct 2023 13:58:33 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> Hi,
>>
>> This change does three things:
>>
>> 1. At construction of message we used to compute `strlen` and then `strcpy`, we change this to do only one `strlen` and then a `memcpy` instead.
>> 2. A `strlen` used to be required to calculate the size when finding the next message in the iterator. We instead store the previously computed message length and so the `strlen` is no longer necessary. The cost of this is 8 bytes extra per message (64 -> 72 bytes).
>> 3. There's also some code which alters the alignment to explicitly handle the alignment of `Message` and ensure that `_pos` starts at a `Message`-aligned pointer.
>
> src/hotspot/share/logging/logAsyncWriter.hpp line 87:
>
>> 85: LogFileStreamOutput* const _output;
>> 86: const LogDecorations _decorations;
>> 87: size_t _msglen; // Length of message excluding NUL-byte
>
> Is it `const`?
Thanks, it is `const`. Same for the other comment.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16029#discussion_r1346039611
More information about the hotspot-runtime-dev
mailing list