On Thu, Sep 24, 2020 at 1:50 PM <mgrigo...@apache.org> wrote: > This is an automated email from the ASF dual-hosted git repository. > > mgrigorov pushed a commit to branch master > in repository https://gitbox.apache.org/repos/asf/tomcat.git > > commit d2ed8ffc75c5e3b425888b456ffc51036d94ac39 > Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org> > AuthorDate: Thu Sep 24 13:42:18 2020 +0300 > > Small optimizations in HpackEncoder > > 1) Use switch(String) instead of series of String.equals() calls. The > switch uses String.hashCode() and falls back to .equals() only if there are > cases with the same hash code. > 2) Reduce memory allocations: no need to Map.Entry since the key is > never used >
this should read: ... no need to *create* Map.Entry > --- > java/org/apache/coyote/http2/HpackEncoder.java | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/java/org/apache/coyote/http2/HpackEncoder.java > b/java/org/apache/coyote/http2/HpackEncoder.java > index dda5714..ae81033 100644 > --- a/java/org/apache/coyote/http2/HpackEncoder.java > +++ b/java/org/apache/coyote/http2/HpackEncoder.java > @@ -44,7 +44,13 @@ class HpackEncoder { > public boolean shouldUseIndexing(String headerName, String value) > { > //content length and date change all the time > //no need to index them, or they will churn the table > - return !headerName.equals("content-length") && > !headerName.equals("date"); > + switch (headerName) { > + case "content-length": > + case "date": > + return false; > + default: > + return true; > + } > } > > @Override > @@ -258,8 +264,8 @@ class HpackEncoder { > private void preventPositionRollover() { > //if the position counter is about to roll over we iterate all > the table entries > //and set their position to their actual position > - for (Map.Entry<String, List<TableEntry>> entry : > dynamicTable.entrySet()) { > - for (TableEntry t : entry.getValue()) { > + for (List<TableEntry> tableEntries : dynamicTable.values()) { > + for (TableEntry t : tableEntries) { > t.position = t.getPosition(); > } > } > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > >