RFR: 8329433: Reduce nmethod header size [v3]
Dean Long
dlong at openjdk.org
Tue Apr 16 02:31:00 UTC 2024
On Mon, 15 Apr 2024 03:24:07 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
>> This is part of changes which try to reduce size of `nmethod` and `codeblob` data vs code in CodeCache.
>> These changes reduced size of `nmethod` header from 288 to 232 bytes. From 304 to 248 in optimized VM:
>>
>> Statistics for 1282 bytecoded nmethods for C2:
>> total in heap = 5560352 (100%)
>> header = 389728 (7.009053%)
>>
>> vs
>>
>> Statistics for 1322 bytecoded nmethods for C2:
>> total in heap = 8307120 (100%)
>> header = 327856 (3.946687%)
>>
>>
>> Several unneeded fields in `nmethod` and `CodeBlob` were removed. Some fields were changed from `int` to `int16_t` with added corresponding asserts to make sure their values are fit into 16 bits.
>>
>> I did additional cleanup after recent `CompiledMethod` removal.
>>
>> Tested tier1-7,stress,xcomp and performance testing.
>
> Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:
>
> Union fields which usages do not overlap
src/hotspot/share/code/nmethod.hpp line 282:
> 280: _has_flushed_dependencies:1, // Used for maintenance of dependencies (under CodeCache_lock)
> 281: _is_unlinked:1, // mark during class unloading
> 282: _load_reported:1; // used by jvmti to track if an event has been posted for this nmethod
It seems like the type could be changed from uint8_t to bool.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18768#discussion_r1566631312
More information about the graal-dev
mailing list