From 158f40e7d04e17c4b042ff7a9c1db52ac827946f Mon Sep 17 00:00:00 2001 From: Matthew Hall Date: Thu, 23 Oct 2025 10:21:35 -0400 Subject: [PATCH] Add benchmark for Class.isAssignableFrom Signed-off-by: Matthew Hall --- build.xml | 10 +++ .../IsAssignableFromBench.java | 73 +++++++++++++++++++ .../bumblebench/core/Launcher.java | 1 + 3 files changed, 84 insertions(+) create mode 100644 net/adoptopenjdk/bumblebench/casting/isAssignableFrom/IsAssignableFromBench.java diff --git a/build.xml b/build.xml index fb932a4..4d393bc 100644 --- a/build.xml +++ b/build.xml @@ -25,6 +25,7 @@ execute a build. + @@ -55,6 +56,15 @@ execute a build. includeantruntime="false" includes="**/ParallelBench.java"> + + + classes[] = {Barks.class, Meows.class, Sheds.class, LaysEggs.class, Animal.class, Plant.class, Mamal.class, Reptile.class, Canine.class, Feline.class, Tree.class, Carniferous.class, Deciduous.class, Mamal.class, + Dog.class, Cat.class, Fox.class, Platypus.class, Lab.class, Poodle.class, Calico.class}; + + protected long doBatch(long numIterations) throws InterruptedException { + pauseTimer(); + + + Random r = new Random(1); + int length = classes.length; + boolean b = false; + for (long i = 0; i < numIterations; i++) + { + int first = r.nextInt(length); + int second = r.nextInt(length); + startTimer(); + b = b ^ classes[first].isAssignableFrom(classes[second]); + pauseTimer(); + } + return numIterations; + } +} + diff --git a/net/adoptopenjdk/bumblebench/core/Launcher.java b/net/adoptopenjdk/bumblebench/core/Launcher.java index 8650f4d..f2df184 100644 --- a/net/adoptopenjdk/bumblebench/core/Launcher.java +++ b/net/adoptopenjdk/bumblebench/core/Launcher.java @@ -78,6 +78,7 @@ static void runBumbleMainOn(BumbleBench instance) throws NoSuchMethodException, + ":net.adoptopenjdk.bumblebench.string" + ":net.adoptopenjdk.bumblebench.humble" + ":net.adoptopenjdk.bumblebench.arraycopy" + + ":net.adoptopenjdk.bumblebench.casting.isAssignableFrom" ; public static Class loadTestClass(String[] packageNames, String name) throws ClassNotFoundException, IOException {