This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new adef1ca444 Move performance test to separate class
adef1ca444 is described below

commit adef1ca444d0bd955f0600a79a2111a374145322
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jan 3 19:37:56 2024 +0000

    Move performance test to separate class
---
 .../apache/tomcat/util/buf/TestMessageBytes.java   | 95 ----------------------
 ...Bytes.java => TestMessageBytesPerformance.java} | 50 +-----------
 2 files changed, 1 insertion(+), 144 deletions(-)

diff --git a/test/org/apache/tomcat/util/buf/TestMessageBytes.java 
b/test/org/apache/tomcat/util/buf/TestMessageBytes.java
index df8718e007..f9af7fd19d 100644
--- a/test/org/apache/tomcat/util/buf/TestMessageBytes.java
+++ b/test/org/apache/tomcat/util/buf/TestMessageBytes.java
@@ -16,40 +16,10 @@
  */
 package org.apache.tomcat.util.buf;
 
-import java.nio.CharBuffer;
-import java.nio.charset.CharacterCodingException;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.CodingErrorAction;
-import java.nio.charset.StandardCharsets;
-
-import org.junit.Assert;
-import org.junit.Assume;
 import org.junit.Test;
 
-import org.apache.tomcat.util.compat.JreCompat;
-
 public class TestMessageBytes {
 
-    private static final String CONVERSION_STRING =
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
-            "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
-
-    private static final int CONVERSION_LOOPS = 1000000;
-
     @Test
     public void testToStringFromNull() {
         MessageBytes mb = MessageBytes.newInstance();
@@ -96,69 +66,4 @@ public class TestMessageBytes {
         mb.recycle();
         mb.toChars();
     }
-
-
-    /*
-     * Checks the the optimized code is faster than the non-optimized code.
-     */
-    @Test
-    public void testConversionPerformance() {
-
-        // ISO_8859_1 conversion appears to be optimised in Java 16 onwards
-        Assume.assumeFalse(JreCompat.isJre16Available());
-
-        long optimized = -1;
-        long nonOptimized = -1;
-
-        /*
-         * One loop is likely to be enough as the optimised code is
-         * significantly (3x to 4x on markt's desktop) faster than the
-         * non-optimised code. Loop three times allows once to warn up the JVM
-         * once to run the test and once more in case of unexpected CI /GC
-         * slowness. The test will exit early if possible.
-         *
-         * MessageBytes only optimises conversion for ISO_8859_1
-         */
-        for (int i = 0; i < 3; i++) {
-            optimized = doTestOptimisedConversionPerformance();
-            nonOptimized = doTestConversionPerformance();
-
-            System.out.println("    Optimized: " + optimized + 
"\nNon-optimized: " + nonOptimized);
-            if (optimized * 2 < nonOptimized) {
-                break;
-            }
-        }
-
-        Assert.assertTrue("Non-optimised code was faster (" + nonOptimized + 
"ns) compared to optimized (" +
-                optimized + "ns)", optimized < nonOptimized);
-    }
-
-
-    private long doTestOptimisedConversionPerformance() {
-        MessageBytes mb = MessageBytes.newInstance();
-
-        long start = System.nanoTime();
-        for (int i = 0; i < CONVERSION_LOOPS; i++) {
-            mb.recycle();
-            mb.setCharset(StandardCharsets.ISO_8859_1);
-            mb.setString(CONVERSION_STRING);
-            mb.toBytes();
-        }
-        return System.nanoTime() - start;
-    }
-
-
-    private long doTestConversionPerformance() {
-        long start = System.nanoTime();
-        for (int i = 0; i < CONVERSION_LOOPS; i++) {
-            CharsetEncoder encoder = 
StandardCharsets.ISO_8859_1.newEncoder().onMalformedInput(
-                    
CodingErrorAction.REPORT).onUnmappableCharacter(CodingErrorAction.REPORT);
-            try {
-                encoder.encode(CharBuffer.wrap(CONVERSION_STRING));
-            } catch (CharacterCodingException cce) {
-                Assert.fail();
-            }
-        }
-        return System.nanoTime() - start;
-    }
 }
diff --git a/test/org/apache/tomcat/util/buf/TestMessageBytes.java 
b/test/org/apache/tomcat/util/buf/TestMessageBytesPerformance.java
similarity index 83%
copy from test/org/apache/tomcat/util/buf/TestMessageBytes.java
copy to test/org/apache/tomcat/util/buf/TestMessageBytesPerformance.java
index df8718e007..248652152e 100644
--- a/test/org/apache/tomcat/util/buf/TestMessageBytes.java
+++ b/test/org/apache/tomcat/util/buf/TestMessageBytesPerformance.java
@@ -28,7 +28,7 @@ import org.junit.Test;
 
 import org.apache.tomcat.util.compat.JreCompat;
 
-public class TestMessageBytes {
+public class TestMessageBytesPerformance {
 
     private static final String CONVERSION_STRING =
             "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" 
+
@@ -50,54 +50,6 @@ public class TestMessageBytes {
 
     private static final int CONVERSION_LOOPS = 1000000;
 
-    @Test
-    public void testToStringFromNull() {
-        MessageBytes mb = MessageBytes.newInstance();
-        mb.toString();
-    }
-
-
-    @Test
-    public void testToBytesFromNull() {
-        MessageBytes mb = MessageBytes.newInstance();
-        mb.toBytes();
-    }
-
-
-    @Test
-    public void testToCharsFromNull() {
-        MessageBytes mb = MessageBytes.newInstance();
-        mb.toChars();
-    }
-
-
-    @Test
-    public void testToStringAfterRecycle() {
-        MessageBytes mb = MessageBytes.newInstance();
-        mb.setString("foo");
-        mb.recycle();
-        mb.toString();
-    }
-
-
-    @Test
-    public void testToBytesAfterRecycle() {
-        MessageBytes mb = MessageBytes.newInstance();
-        mb.setString("foo");
-        mb.recycle();
-        mb.toBytes();
-    }
-
-
-    @Test
-    public void testToCharsAfterRecycle() {
-        MessageBytes mb = MessageBytes.newInstance();
-        mb.setString("foo");
-        mb.recycle();
-        mb.toChars();
-    }
-
-
     /*
      * Checks the the optimized code is faster than the non-optimized code.
      */


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

Reply via email to