RFR: 8225239: Refactor NetworkInterface lookups

Claes Redestad claes.redestad at oracle.com
Fri Jul 5 10:10:14 UTC 2019


Thanks, Daniel!

/Claes

On 2019-07-05 12:07, Daniel Fuchs wrote:
> Hi Claes,
> 
> That looks like a good cleanup and improvement.
> Thanks for having looked into this!
> 
> best regards,
> 
> -- daniel
> 
> On 04/07/2019 21:20, Claes Redestad wrote:
>> Hi,
>>
>> please review this patch that refactors native java.net.NetworkInterface
>> lookup logic in a few ways to address both pre-existing and recent
>> regressions:
>>
>> Bug:    https://bugs.openjdk.java.net/browse/JDK-8225239
>> Webrev: http://cr.openjdk.java.net/~redestad/8225239/open.01/
>>
>> - adds a package-private method isBoundInetAddress that shortcuts
>>    some of the paths taken by existing methods when all we want to know
>>    is whether an IP address is bound to some interface on this system.
>>    This allows us to iterate over only IPv4 interfaces if the sought
>>    after IP address is an IPv4 address and vice versa for IPv6 addresses.
>>    This means a small (1.1x) to large (5x) speedup on a variety of
>>    systems, depending on how many IPv4 vs IPv6 interfaces exist on the
>>    system..
>>
>> - refactors how the Windows-specific GetIPAddrTable API is used: current
>>    implementation looks up the global IP address table over and over,
>>    once per bound address, which means time spent by operations like
>>    NetworkInterface.getByInetAddress grows at least quadratically with
>>    the number of interfaces on a system. Refactoring these methods so
>>    that GetIPAddrTable is called once means a dramatic improvement on
>>    some of the API calls, e.g getByInetAddress cost drops from ~100ms to
>>    ~10ms on one of our larger test systems.
>>
>> - Added some additional tests and a microbenchmark.
>>
>> Testing: tier1-4 (some still ongoing, but all green so far)
>>
>> Thanks!
>>
>> /Claes
> 


More information about the net-dev mailing list