amarkevich opened a new pull request #483: HttpHeaderHelper: String.replace 
instead of Pattern.matcher().replaceAll
URL: https://github.com/apache/cxf/pull/483
 
 
   benchmark [1] results:
   - old: 40 MB 47 ms
   - new: 9 MB 0 ms
   1.
   ```
   public class HttpHeaderHelperMapCharsetTest {
       private static final int CNT = 131072;
       static final String charset = 
java.nio.charset.StandardCharsets.UTF_8.name();
       private static final String[] STR = new String[CNT];
       static {
           for (int i = 0; i < CNT; ++i) {
               if (i % 3 == 0) {
                   STR[i] = "\"" + charset + "\"";
               } else if (i % 3 == 1) {
                   STR[i] = "'" + charset + "'";
               } else {
                   STR[i] = charset;
               }
           }
       }
   
       @org.junit.Test
       public void mapCharset() {
           metrics("HttpHeaderHelper::mapCharset", 
HttpHeaderHelper::mapCharset);
       }
   
       @org.junit.Test
       public void mapCharset2() {
           metrics("HttpHeaderHelper::mapCharset2", 
HttpHeaderHelper::mapCharset2);
       }
   
       private static void metrics(String label, 
java.util.function.Function<String, String> f) {
           Runtime.getRuntime().gc();
           long m = Runtime.getRuntime().freeMemory();
           long t = System.currentTimeMillis();
           for (int i = 0; i < CNT; ++i) {
               org.junit.Assert.assertEquals(charset, f.apply(STR[i]));
           }
           System.out.println(label + ": " + ((m - 
Runtime.getRuntime().freeMemory()) / (1024 * 1024)) + " MB "
                   + (System.currentTimeMillis() - t) + " ms");
       }
   
       public static void main(String[] args) {
           final HttpHeaderHelperMapCharsetTest splitTest = new 
HttpHeaderHelperMapCharsetTest();
           for (int i = 0; i < 10; ++i) {
               System.out.println("Round #" + i);
               splitTest.mapCharset();
               splitTest.mapCharset2();
           }
       }
   
   }
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to