On Fri, 2 Oct 2020 08:41:56 GMT, Conor Cleary <ccle...@openjdk.org> wrote:

>> This patch replaces a LinkedList data structure used in the 
>> net.http.Http2Connection class with an ArrayList. This
>> issue relates to [JDK-8246048: Replace LinkedList with ArrayLists in
>> java.net](https://bugs.openjdk.java.net/browse/JDK-8246048).  Some 
>> justifications for this change are as follows:
>> 
>> - Sequential Access Times for ArrayLists are improved due to locality of 
>> reference (i.e ArrayList elements stored in same
>>   memory neighborhood)
>> - Get(index) operations are O(1) time complexity for ArrayLists as opposed 
>> to worst-case O(N-1) for LinkedLists
>> - While insertion operations can be expensive (O(N) in the worst case), 
>> these operations appear to be
>>   infrequent/non-existent in this case.
>> 
>> Additional justifications or challenges to those listed are welcome! The 
>> general idea is that ArrayLists out-perform
>> LinkedLists in this scenario.
>
> Conor Cleary has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8253179: Removed ArrayList copy of streams

src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java line 
704:

> 702:         client2.deleteConnection(this);
> 703:         for (Stream<?> s : streams.values()) {
> 704:             try {

To address some of the feedback given, the streams  are now directly addressed 
instead of making a copy.  ConcurrentMap
has also been used to initialise streams instead of Map. Seeking 
feedback/opinions on this if possible

-------------

PR: https://git.openjdk.java.net/jdk/pull/431

Reply via email to