rschmitt opened a new pull request, #645:
URL: https://github.com/apache/httpcomponents-client/pull/645

   The HTTP client builders always construct a client with a non-null cookie 
spec registry; if a custom instance is not specified, then the builders will 
use `CookieSpecSupport.createDefault()`, which loads the full public suffix 
list. The PSL rules are stored on the heap as a `ConcurrentHashMap`, i.e. a 
giant array (16,384 on my machine) containing map entries, each of which is 
also allocated as a separate object on the heap. This is a considerable number 
of live objects that the garbage collector may need to trace. I ran a simple 
microbenchmark to show the effects of loading the PSL on garbage collection 
(these numbers are from JDK 1.8):
   
       GC took 2 ms
       GC took 2 ms
       GC took 2 ms
       Loading public suffix list... done (took 193 ms)
       GC took 11 ms
       GC took 8 ms
       GC took 7 ms
   
   This is potentially a significant amount of tail latency for use cases that 
don't require cookie management, such as RPC calls. With this change, it is now 
possible to configure and construct a client that does not load the PSL into 
memory.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to