RFR: 8225239: Refactor NetworkInterface lookups
Claes Redestad
claes.redestad at oracle.com
Fri Jul 5 10:10:00 UTC 2019
Thanks, Michael!
/Claes
On 2019-07-05 10:02, Michael McMahon wrote:
> Claes,
>
> This is great work and long overdue.
> Thanks for taking care of it.
>
> - Michael.
>
> On 04/07/2019, 20: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