We can do batter. John Rose propose to have static table big enough to hold most of external addresses and it will not grow. We need lock only to add new address to it. Use second, growable array when first table is full. Use locks for all access to it as in
Dean Long proposed step further. Most of runtime addresses are know and we can populate first constant table with them during VM initialization. All dynamically added addresses will go into second array. In such cases first table will be constant and immutable so we don't need lock to access it.
- relates to
-
JDK-8333819 Move embedded external addresses from relocation info into separate global table
- Resolved