On Tue, 17 Sep 2024 13:05:24 GMT, Per Minborg <pminb...@openjdk.org> wrote:
>> This PR suggests introducing an internal class in `java.base` to simplify >> the use of some `MethodHandles.Lookup` operations. >> >> While the utility of the methods might appear to be limited in classes with >> many static `VarHandle`/`MethodHandle` variables, it should be noted that >> the class files become smaller and simpler. Here are some examples: >> >> | Class File | Base [Bytes] | Patch >> [Byte] | >> | --------------------------------| ------------- | ------------ | >> | FutureTask.class | 10,255 | >> 10,123 | >> | AtomicBoolean.class | 5,364 | >> 5,134 | >> |AtomicMarkableReference.class | 3,890 | 3,660 | >> >>  >> >> The new `MethodHandlesInternal.class` file is of size 1,952 bytes. >> >> In total for `java.base` we have: >> >> | Build map "jdk" | Size [Bytes] | >> | ---------------| ------------- | >> | Base | 5,906,457 | >> | Patch | 5,905,487 | >> | Delta | 940| >> >> For 60 billion instances, this represents > 50 TB. >> >> Tried and passed tier1-3 > > Per Minborg has updated the pull request incrementally with two additional > commits since the last revision: > > - Update javadoc > - Rename utility class I think a better approach to this problem might be converting these static final MethodHandle/VarHandle to class-file constants (Constant_MethodHandle for MH, Constant_Dynamic for VH), see JEP 303. ------------- PR Comment: https://git.openjdk.org/jdk/pull/20972#issuecomment-2355833854