On Thu, Jun 5, 2025 at 6:52 PM <ma...@apache.org> wrote: > > This is an automated email from the ASF dual-hosted git repository. > > markt pushed a commit to branch main > in repository https://gitbox.apache.org/repos/asf/tomcat.git > > > The following commit(s) were added to refs/heads/main by this push: > new 29969082f0 Drop test that has become increasingly unreliable > 29969082f0 is described below > > commit 29969082f03d103c429b2f2acbd2a6d8e96eb8bb > Author: Mark Thomas <ma...@apache.org> > AuthorDate: Thu Jun 5 17:52:46 2025 +0100 > > Drop test that has become increasingly unreliable
+1 This one was not working well for me anymore either. Rémy > --- > .../catalina/util/TestParameterMapPerformance.java | 103 > --------------------- > 1 file changed, 103 deletions(-) > > diff --git a/test/org/apache/catalina/util/TestParameterMapPerformance.java > b/test/org/apache/catalina/util/TestParameterMapPerformance.java > deleted file mode 100644 > index a89341a1a5..0000000000 > --- a/test/org/apache/catalina/util/TestParameterMapPerformance.java > +++ /dev/null > @@ -1,103 +0,0 @@ > -/* > - * Licensed to the Apache Software Foundation (ASF) under one or more > - * contributor license agreements. See the NOTICE file distributed with > - * this work for additional information regarding copyright ownership. > - * The ASF licenses this file to You under the Apache License, Version 2.0 > - * (the "License"); you may not use this file except in compliance with > - * the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, software > - * distributed under the License is distributed on an "AS IS" BASIS, > - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > - * See the License for the specific language governing permissions and > - * limitations under the License. > - */ > -package org.apache.catalina.util; > - > -import java.util.ArrayList; > -import java.util.HashMap; > -import java.util.List; > -import java.util.Map; > - > -import org.junit.Assert; > -import org.junit.Test; > - > -public class TestParameterMapPerformance { > - > - private static final int NUM_TESTS = 10; > - private static final int NUM_SKIP = 4; > - private static final int NUM_TEST_ITERATIONS = 1000000; > - > - private ParameterMap<Integer,Object> baseParams; > - private ParameterMap<Integer,Object> testParams; > - > - @Test > - public void testCompareStandardAndOptimizedMapConstructor() { > - Map<Integer,Object> values = new HashMap<>(); > - for (int i = 0; i < 50; i++) { > - Integer integer = Integer.valueOf(i); > - values.put(integer, integer); > - } > - > - baseParams = new ParameterMap<>(values); > - baseParams.setLocked(true); > - > - // warmup > - for (int i = 0; i < NUM_TEST_ITERATIONS; i++) { > - useStandardConstructor(); > - useOptimizedMapConstructor(); > - } > - > - List<Long> standardDurations = new ArrayList<>(); > - for (int i = 0; i < NUM_TESTS; i++) { > - System.gc(); > - long startStandard = System.currentTimeMillis(); > - for (int j = 0; j < NUM_TEST_ITERATIONS; j++) { > - useStandardConstructor(); > - } > - long duration = System.currentTimeMillis() - startStandard; > - standardDurations.add(Long.valueOf(duration)); > - System.out.println("Done with standard in " + duration + "ms"); > - } > - /* > - * The CI systems tend to produce outliers that lead to false > failures so skip the longest NUM_SKIP runs. > - */ > - long standardTotalDuration = > - standardDurations.stream().sorted().limit(NUM_TESTS - > NUM_SKIP).reduce(Long::sum).get().longValue(); > - > - List<Long> optimizedDurations = new ArrayList<>(); > - for (int i = 0; i < NUM_TESTS; i++) { > - System.gc(); > - long startOptimized = System.currentTimeMillis(); > - for (int j = 0; j < NUM_TEST_ITERATIONS; j++) { > - useOptimizedMapConstructor(); > - } > - long duration = System.currentTimeMillis() - startOptimized; > - optimizedDurations.add(Long.valueOf(duration)); > - System.out.println("Done with optimized in " + duration + "ms"); > - } > - /* > - * The CI systems tend to produce outliers that lead to false > failures so skip the longest NUM_SKIP runs. > - */ > - long optimizedTotalDuration = > - optimizedDurations.stream().sorted().limit(NUM_TESTS - > NUM_SKIP).reduce(Long::sum).get().longValue(); > - > - Assert.assertTrue("Standard: " + standardTotalDuration + "ms, > Optimized: " + optimizedTotalDuration + "ms", > - optimizedTotalDuration < standardTotalDuration); > - } > - > - > - private void useOptimizedMapConstructor() { > - testParams = new ParameterMap<>(baseParams); > - testParams.entrySet(); > - } > - > - > - private void useStandardConstructor() { > - testParams = new ParameterMap<>(); > - testParams.putAll(baseParams); > - testParams.entrySet(); > - } > -} > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org