From 78050c59abdb09cbdd8b4d0ce94e91514a6d6e5f Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Fri, 14 May 2021 15:19:04 +0200 Subject: [PATCH] Don't create a new ParserImpl on each parser() call (#11255) Motivation: ParserImpl is stateless and so we can use the same instance multiple times Modifications: - Make constructor private - Return the same instance all the time Result: Less object creation --- .../java/io/netty/resolver/HostsFileEntriesProvider.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resolver/src/main/java/io/netty/resolver/HostsFileEntriesProvider.java b/resolver/src/main/java/io/netty/resolver/HostsFileEntriesProvider.java index 8f0edb1fc6..aaf29208e0 100644 --- a/resolver/src/main/java/io/netty/resolver/HostsFileEntriesProvider.java +++ b/resolver/src/main/java/io/netty/resolver/HostsFileEntriesProvider.java @@ -120,7 +120,7 @@ public final class HostsFileEntriesProvider { * @return a new {@link HostsFileEntriesProvider.Parser} */ public static Parser parser() { - return new ParserImpl(); + return ParserImpl.INSTANCE; } static final HostsFileEntriesProvider EMPTY = @@ -164,6 +164,12 @@ public final class HostsFileEntriesProvider { private static final InternalLogger logger = InternalLoggerFactory.getInstance(Parser.class); + static final ParserImpl INSTANCE = new ParserImpl(); + + private ParserImpl() { + // singleton + } + @Override public HostsFileEntriesProvider parse() throws IOException { return parse(locateHostsFile(), Charset.defaultCharset());