On Tue, 30 May 2023 13:03:27 GMT, Aleksandar Pejović <d...@openjdk.org> wrote:

> The current code for cgroup support in the JDK has large and expensive 
> dependencies: it uses NIO, streams, and regular expressions. This leads to 
> unnecessary class loading and slows down startup, especially when the code is 
> executed early during an application startup. This is especially a problem 
> for GraalVM, which executes this code during VM startup.
> 
> This PR reduces the dependencies:
> - NIO is replaced with regular `java.io` for file access.
> - Streams are replaced with loops (a side effect of this is that files are 
> read in full whereas previously they could be read up to a certain point, 
> e.g., until a match is found).
> - Regular expressions are replaced with manual tokenization (and for usages 
> of `String.split`, the "regex" is changed to single characters for which 
> `String.split` has a fast-path implementation that avoids the regular 
> expression engine).

With my Mandrel hat on I support this change if it helps reducing duplication 
on the native-image side. It appears, though, we need to find a way that's 
supportable long-term. It's easy to introduce a new change to this code which 
accidentally drags in some of those (unwanted) dependencies again.

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

PR Comment: https://git.openjdk.org/jdk/pull/14216#issuecomment-1571922156

Reply via email to