Repository: quarkusio/quarkus
Issue: dev mode Startup time regression between 2.7.5.Final and 2.8.0.CR1

### Describe the bug

I noticed a slight regression in dev mode startup time between 2.7.5.Final and 2.8.0.CR1.
A bit of testing showed cf388350609ff4b108dacd09a187523d35b6fc4c (#24398) as main contributor.

average of 3 runs:
2.8.0.CR1
mvn quarkus:dev: 2170ms
force restart (s) 532ms

2.7.5.Final
mvn quarkus:dev: 1850ms
force restart (s) 189ms

2.8.0.Final and 2.8.0.CR1 behave the same regarding dev mode startup time.

### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

Download the reproducer, or just generate any quarkus app: 
[profiling.zip](https://github.com/quarkusio/quarkus/files/8403295/profiling.zip)


mvn quarkus:dev. Take not about the reported startup time.
change version to 2.7.5.Final
mvn quarkus:dev. Take not about the reported startup time. Way faster.

### Output of `uname -a` or `ver`

Microsoft Windows [Version 10.0.22000.556]

### Output of `java -version`

openjdk 17.0.1 2021-10-19 OpenJDK Runtime Environment Temurin-17.0.1+12 (build 17.0.1+12) OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (build 17.0.1+12, mixed mode, sharing)

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.7.5.Final, 2.8.0.CR1

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739) Maven home: C:\\tools\\java\\maven Java version: 17.0.1, vendor: Eclipse Adoptium, runtime: C:\\tools\\java\\17-temurin Default locale: de_DE, platform encoding: Cp1252 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

### Additional information

_No response_

Changed files:
independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java

diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java
index 8107dcdf3a8..2a2a4564505 100644
--- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java
+++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java
@@ -410,6 +410,11 @@ public RemovedBeanAdder(ClassCreator componentsProvider, MethodCreator getCompon
             this.typeCache = new MapTypeCache();
         }
 
+        @Override
+        protected int groupLimit() {
+            return 5;
+        }
+
         @Override
         MethodCreator newAddMethod() {
             // Clear the shared maps for each addRemovedBeansX() method
@@ -687,7 +692,7 @@ public void close() {
 
         void addComponent(T component) {
 
-            if (addMethod == null || componentsAdded >= GROUP_LIMIT) {
+            if (addMethod == null || componentsAdded >= groupLimit()) {
                 if (addMethod != null) {
                     addMethod.returnValue(null);
                 }
@@ -709,6 +714,10 @@ void addComponent(T component) {
 
         abstract void addComponentInternal(T component);
 
+        protected int groupLimit() {
+            return GROUP_LIMIT;
+        }
+
     }
 
     // This wrapper is needed because AnnotationInstance#equals() compares the annotation target