On Thu, 29 Aug 2024 05:34:37 GMT, Shaojin Wen <s...@openjdk.org> wrote:

> TypeKind.from(Class) is a frequently called method, which provides a 
> specialized method to improve performance.
> 
> The following Compiler log shows that the call stack level is reduced and two 
> reference accesses (descriptorString() -> String.value) are reduced, which 
> can reduce the performance degradation caused by cache misses.
> 
> * baseline
> 
> @ 48   java.lang.classfile.TypeKind::from (25 bytes)   inline
>   @ 1   java.lang.Class::isPrimitive (0 bytes)   intrinsic
>   @ 10   java.lang.Class::descriptorString (170 bytes)   failed to inline: 
> callee is too large
>   @ 15   java.lang.classfile.TypeKind::fromDescriptor (232 bytes)   failed to 
> inline: callee is too large
> 
> 
> * current
> 
> @ 52   java.lang.classfile.TypeKind::from (103 bytes)   failed to inline: 
> callee is too large

Below are the performance numbers running on a MacBook M1

## 1. TieredStopAtLevel=1

### 1.1 Script

git remote add wenshao g...@github.com:wenshao/jdk.git
git fetch wenshao

# baseline
git checkout 990958a8724c88e7eeb4c0af7db4c937c51ffffe
make test TEST="micro:java.lang.constant.TypeKindFrom" MICRO="VM_OPTIONS=-Xint 
-XX:TieredStopAtLevel=1"

# current
git checkout a29acc54f2b13067cd4899d46f9d29c4e517aed0
make test TEST="micro:java.lang.constant.TypeKindFrom" MICRO="VM_OPTIONS=-Xint 
-XX:TieredStopAtLevel=1"


### 1.2 Performance Numbers


-# baseline
-Benchmark                         (typeName)  Mode  Cnt    Score   Error  Units
-TypeKindFrom.fromClass                     B  avgt    9  444.221 ? 9.995  ns/op
-TypeKindFrom.fromClass                     C  avgt    9  442.828 ? 3.071  ns/op
-TypeKindFrom.fromClass                     Z  avgt    9  432.887 ? 1.750  ns/op
-TypeKindFrom.fromClass                     S  avgt    9  436.567 ? 2.582  ns/op
-TypeKindFrom.fromClass                     I  avgt    9  432.613 ? 3.427  ns/op
-TypeKindFrom.fromClass                     F  avgt    9  448.737 ? 2.134  ns/op
-TypeKindFrom.fromClass                     J  avgt    9  433.297 ? 2.909  ns/op
-TypeKindFrom.fromClass                     D  avgt    9  452.180 ? 1.926  ns/op
-TypeKindFrom.fromClass                     V  avgt    9  454.183 ? 3.541  ns/op
-TypeKindFrom.fromClass      java.lang.Object  avgt    9  148.701 ? 0.141  ns/op
-TypeKindFrom.fromClassDesc                 B  avgt    9  164.980 ? 0.412  ns/op
-TypeKindFrom.fromClassDesc                 C  avgt    9  165.348 ? 0.638  ns/op
-TypeKindFrom.fromClassDesc                 Z  avgt    9  164.978 ? 0.527  ns/op
-TypeKindFrom.fromClassDesc                 S  avgt    9  164.685 ? 0.909  ns/op
-TypeKindFrom.fromClassDesc                 I  avgt    9  164.591 ? 0.211  ns/op
-TypeKindFrom.fromClassDesc                 F  avgt    9  164.399 ? 0.364  ns/op
-TypeKindFrom.fromClassDesc                 J  avgt    9  164.907 ? 0.970  ns/op
-TypeKindFrom.fromClassDesc                 D  avgt    9  164.221 ? 1.483  ns/op
-TypeKindFrom.fromClassDesc                 V  avgt    9  164.275 ? 0.650  ns/op
-TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  164.773 ? 0.777  ns/op

+# current
+Benchmark                         (typeName)  Mode  Cnt    Score   Error  Units
+TypeKindFrom.fromClass                     B  avgt    9   82.000 ? 1.855  ns/op
+TypeKindFrom.fromClass                     C  avgt    9   83.849 ? 0.757  ns/op
+TypeKindFrom.fromClass                     Z  avgt    9   75.043 ? 0.567  ns/op
+TypeKindFrom.fromClass                     S  avgt    9   91.629 ? 0.460  ns/op
+TypeKindFrom.fromClass                     I  avgt    9   87.585 ? 0.441  ns/op
+TypeKindFrom.fromClass                     F  avgt    9   96.923 ? 0.680  ns/op
+TypeKindFrom.fromClass                     J  avgt    9   90.674 ? 0.178  ns/op
+TypeKindFrom.fromClass                     D  avgt    9  103.853 ? 0.359  ns/op
+TypeKindFrom.fromClass                     V  avgt    9  104.074 ? 1.012  ns/op
+TypeKindFrom.fromClass      java.lang.Object  avgt    9  116.578 ? 0.865  ns/op
+TypeKindFrom.fromClassDesc                 B  avgt    9  116.473 ? 0.252  ns/op
+TypeKindFrom.fromClassDesc                 C  avgt    9  116.450 ? 0.915  ns/op
+TypeKindFrom.fromClassDesc                 Z  avgt    9  116.832 ? 0.389  ns/op
+TypeKindFrom.fromClassDesc                 S  avgt    9  118.954 ? 3.664  ns/op
+TypeKindFrom.fromClassDesc                 I  avgt    9  116.153 ? 0.302  ns/op
+TypeKindFrom.fromClassDesc                 F  avgt    9  116.076 ? 0.400  ns/op
+TypeKindFrom.fromClassDesc                 J  avgt    9  116.204 ? 1.159  ns/op
+TypeKindFrom.fromClassDesc                 D  avgt    9  116.235 ? 0.605  ns/op
+TypeKindFrom.fromClassDesc                 V  avgt    9  116.227 ? 1.319  ns/op
+TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  116.466 ? 0.929  ns/op


|   | typeName | baseline  | current | delta |
| --- | --- | --- | --- | --- |
| TypeKindFrom.fromClass | B | 444.221 | 82.000 | 441.73% |
| TypeKindFrom.fromClass | C | 442.828 | 83.849 | 428.13% |
| TypeKindFrom.fromClass | Z | 432.887 | 75.043 | 476.85% |
| TypeKindFrom.fromClass | S | 436.567 | 91.629 | 376.45% |
| TypeKindFrom.fromClass | I | 432.613 | 87.585 | 393.94% |
| TypeKindFrom.fromClass | F | 448.737 | 96.923 | 362.98% |
| TypeKindFrom.fromClass | J | 433.297 | 90.674 | 377.86% |
| TypeKindFrom.fromClass | D | 452.180 | 103.853 | 335.40% |
| TypeKindFrom.fromClass | V | 454.183 | 104.074 | 336.40% |
| TypeKindFrom.fromClass | java.lang.Object | 148.701 | 116.578 | 27.55% |
| TypeKindFrom.fromClassDesc | B | 164.980 | 116.473 | 41.65% |
| TypeKindFrom.fromClassDesc | C | 165.348 | 116.450 | 41.99% |
| TypeKindFrom.fromClassDesc | Z | 164.978 | 116.832 | 41.21% |
| TypeKindFrom.fromClassDesc | S | 164.685 | 118.954 | 38.44% |
| TypeKindFrom.fromClassDesc | I | 164.591 | 116.153 | 41.70% |
| TypeKindFrom.fromClassDesc | F | 164.399 | 116.076 | 41.63% |
| TypeKindFrom.fromClassDesc | J | 164.907 | 116.204 | 41.91% |
| TypeKindFrom.fromClassDesc | D | 164.221 | 116.235 | 41.28% |
| TypeKindFrom.fromClassDesc | V | 164.275 | 116.227 | 41.34% |
| TypeKindFrom.fromClassDesc | java.lang.Object | 164.773 | 116.466 | 41.48% |


## 2. Non-JVM Options

### 2.1 Script

git remote add wenshao g...@github.com:wenshao/jdk.git
git fetch wenshao

# baseline
git checkout 990958a8724c88e7eeb4c0af7db4c937c51ffffe
make test TEST="micro:java.lang.constant.TypeKindFrom"

# current
git checkout a29acc54f2b13067cd4899d46f9d29c4e517aed0
make test TEST="micro:java.lang.constant.TypeKindFrom"


## 2.2 Performance Numbers

-# baseline
-Benchmark                         (typeName)  Mode  Cnt  Score   Error  Units
-TypeKindFrom.fromClass                     B  avgt    9  1.563 ? 0.004  ns/op
-TypeKindFrom.fromClass                     C  avgt    9  1.716 ? 0.009  ns/op
-TypeKindFrom.fromClass                     Z  avgt    9  1.252 ? 0.002  ns/op
-TypeKindFrom.fromClass                     S  avgt    9  1.410 ? 0.015  ns/op
-TypeKindFrom.fromClass                     I  avgt    9  1.268 ? 0.017  ns/op
-TypeKindFrom.fromClass                     F  avgt    9  1.874 ? 0.013  ns/op
-TypeKindFrom.fromClass                     J  avgt    9  1.096 ? 0.006  ns/op
-TypeKindFrom.fromClass                     D  avgt    9  2.184 ? 0.018  ns/op
-TypeKindFrom.fromClass                     V  avgt    9  2.183 ? 0.010  ns/op
-TypeKindFrom.fromClass      java.lang.Object  avgt    9  0.677 ? 0.061  ns/op
-TypeKindFrom.fromClassDesc                 B  avgt    9  1.010 ? 0.003  ns/op
-TypeKindFrom.fromClassDesc                 C  avgt    9  1.081 ? 0.001  ns/op
-TypeKindFrom.fromClassDesc                 Z  avgt    9  1.082 ? 0.091  ns/op
-TypeKindFrom.fromClassDesc                 S  avgt    9  1.010 ? 0.004  ns/op
-TypeKindFrom.fromClassDesc                 I  avgt    9  1.010 ? 0.004  ns/op
-TypeKindFrom.fromClassDesc                 F  avgt    9  1.010 ? 0.004  ns/op
-TypeKindFrom.fromClassDesc                 J  avgt    9  1.049 ? 0.091  ns/op
-TypeKindFrom.fromClassDesc                 D  avgt    9  1.012 ? 0.010  ns/op
-TypeKindFrom.fromClassDesc                 V  avgt    9  1.010 ? 0.003  ns/op
-TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  1.011 ? 0.003  ns/op

+# current
+Benchmark                         (typeName)  Mode  Cnt  Score   Error  Units
+TypeKindFrom.fromClass                     B  avgt    9  0.646 ? 0.050  ns/op
+TypeKindFrom.fromClass                     C  avgt    9  0.786 ? 0.016  ns/op
+TypeKindFrom.fromClass                     Z  avgt    9  0.588 ? 0.092  ns/op
+TypeKindFrom.fromClass                     S  avgt    9  1.245 ? 0.002  ns/op
+TypeKindFrom.fromClass                     I  avgt    9  0.934 ? 0.002  ns/op
+TypeKindFrom.fromClass                     F  avgt    9  1.402 ? 0.004  ns/op
+TypeKindFrom.fromClass                     J  avgt    9  1.091 ? 0.004  ns/op
+TypeKindFrom.fromClass                     D  avgt    9  1.713 ? 0.004  ns/op
+TypeKindFrom.fromClass                     V  avgt    9  1.714 ? 0.004  ns/op
+TypeKindFrom.fromClass      java.lang.Object  avgt    9  1.713 ? 0.006  ns/op
+TypeKindFrom.fromClassDesc                 B  avgt    9  1.735 ? 0.052  ns/op
+TypeKindFrom.fromClassDesc                 C  avgt    9  1.712 ? 0.004  ns/op
+TypeKindFrom.fromClassDesc                 Z  avgt    9  1.713 ? 0.006  ns/op
+TypeKindFrom.fromClassDesc                 S  avgt    9  1.714 ? 0.008  ns/op
+TypeKindFrom.fromClassDesc                 I  avgt    9  1.714 ? 0.005  ns/op
+TypeKindFrom.fromClassDesc                 F  avgt    9  1.713 ? 0.005  ns/op
+TypeKindFrom.fromClassDesc                 J  avgt    9  1.712 ? 0.004  ns/op
+TypeKindFrom.fromClassDesc                 D  avgt    9  1.713 ? 0.004  ns/op
+TypeKindFrom.fromClassDesc                 V  avgt    9  1.712 ? 0.008  ns/op
+TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  1.711 ? 0.005  ns/op


|   | pattern | baseline  | current | delta |
| --- | --- | --- | --- | --- |
| TypeKindFrom.fromClass | B | 1.563 | 0.646 | 141.95% |
| TypeKindFrom.fromClass | C | 1.716 | 0.786 | 118.32% |
| TypeKindFrom.fromClass | Z | 1.252 | 0.588 | 112.93% |
| TypeKindFrom.fromClass | S | 1.410 | 1.245 | 13.25% |
| TypeKindFrom.fromClass | I | 1.268 | 0.934 | 35.76% |
| TypeKindFrom.fromClass | F | 1.874 | 1.402 | 33.67% |
| TypeKindFrom.fromClass | J | 1.096 | 1.091 | 0.46% |
| TypeKindFrom.fromClass | D | 2.184 | 1.713 | 27.50% |
| TypeKindFrom.fromClass | V | 2.183 | 1.714 | 27.36% |
| TypeKindFrom.fromClass | java.lang.Object | 0.677 | 1.713 | -60.48% |
| TypeKindFrom.fromClassDesc | B | 1.010 | 1.735 | -41.79% |
| TypeKindFrom.fromClassDesc | C | 1.081 | 1.712 | -36.86% |
| TypeKindFrom.fromClassDesc | Z | 1.082 | 1.713 | -36.84% |
| TypeKindFrom.fromClassDesc | S | 1.010 | 1.714 | -41.07% |
| TypeKindFrom.fromClassDesc | I | 1.010 | 1.714 | -41.07% |
| TypeKindFrom.fromClassDesc | F | 1.010 | 1.713 | -41.04% |
| TypeKindFrom.fromClassDesc | J | 1.049 | 1.712 | -38.73% |
| TypeKindFrom.fromClassDesc | D | 1.012 | 1.713 | -40.92% |
| TypeKindFrom.fromClassDesc | V | 1.010 | 1.712 | -41.00% |
| TypeKindFrom.fromClassDesc | java.lang.Object | 1.011 | 1.711 | -40.91% |

After further improvements, the performance is significantly improved when the 
`TieredStopAtLevel=1` option is used. 

Without the option, 
1. the performance of from(ClassDesc) is significantly improved, 
2. and the performance of from(Class) is mostly significantly improved. 
3. The performance of from(Short.class) and from(Object) will regress.

Below are the performance numbers running on a MacBook M1.

## 1. TieredStopAtLevel=1

### 1.1 Script

git remote add wenshao g...@github.com:wenshao/jdk.git
git fetch wenshao

# baseline
git checkout 2b5fce63d3789472db1d17a09ad68b074553c240
make test TEST="micro:java.lang.classfile.TypeKindFrom" MICRO="VM_OPTIONS=-Xint 
-XX:TieredStopAtLevel=1"

# current
git checkout 91d247afa409d596a53bce6dc7a04b22891d7acb
make test TEST="micro:java.lang.classfile.TypeKindFrom" MICRO="VM_OPTIONS=-Xint 
-XX:TieredStopAtLevel=1"


### 1.2 Performance Numbers


-# baseline
-Benchmark                         (typeName)  Mode  Cnt    Score    Error  
Units
-TypeKindFrom.fromClass                     B  avgt    9  443.536 ? 12.381  
ns/op
-TypeKindFrom.fromClass                     C  avgt    9  439.212 ?  2.298  
ns/op
-TypeKindFrom.fromClass                     Z  avgt    9  432.323 ?  1.742  
ns/op
-TypeKindFrom.fromClass                     S  avgt    9  435.907 ?  2.671  
ns/op
-TypeKindFrom.fromClass                     I  avgt    9  429.435 ?  4.049  
ns/op
-TypeKindFrom.fromClass                     F  avgt    9  445.902 ?  2.401  
ns/op
-TypeKindFrom.fromClass                     J  avgt    9  429.381 ?  0.952  
ns/op
-TypeKindFrom.fromClass                     D  avgt    9  451.880 ?  1.594  
ns/op
-TypeKindFrom.fromClass                     V  avgt    9  452.816 ?  1.298  
ns/op
-TypeKindFrom.fromClass      java.lang.Object  avgt    9  148.893 ?  0.680  
ns/op
-TypeKindFrom.fromClassDesc                 B  avgt    9  164.456 ?  1.403  
ns/op
-TypeKindFrom.fromClassDesc                 C  avgt    9  164.197 ?  0.567  
ns/op
-TypeKindFrom.fromClassDesc                 Z  avgt    9  165.000 ?  2.452  
ns/op
-TypeKindFrom.fromClassDesc                 S  avgt    9  164.275 ?  1.061  
ns/op
-TypeKindFrom.fromClassDesc                 I  avgt    9  164.437 ?  1.635  
ns/op
-TypeKindFrom.fromClassDesc                 F  avgt    9  164.765 ?  0.852  
ns/op
-TypeKindFrom.fromClassDesc                 J  avgt    9  164.663 ?  0.529  
ns/op
-TypeKindFrom.fromClassDesc                 D  avgt    9  164.284 ?  0.747  
ns/op
-TypeKindFrom.fromClassDesc                 V  avgt    9  165.224 ?  1.460  
ns/op
-TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  164.755 ?  1.823  
ns/op

+# current
+Benchmark                         (typeName)  Mode  Cnt    Score   Error  Units
+TypeKindFrom.fromClass                     B  avgt    9  157.207 ? 4.456  ns/op
+TypeKindFrom.fromClass                     C  avgt    9  164.131 ? 0.311  ns/op
+TypeKindFrom.fromClass                     Z  avgt    9  146.979 ? 2.045  ns/op
+TypeKindFrom.fromClass                     S  avgt    9  166.140 ? 1.595  ns/op
+TypeKindFrom.fromClass                     I  avgt    9  149.969 ? 0.844  ns/op
+TypeKindFrom.fromClass                     F  avgt    9  159.677 ? 0.711  ns/op
+TypeKindFrom.fromClass                     J  avgt    9  152.904 ? 0.558  ns/op
+TypeKindFrom.fromClass                     D  avgt    9  145.127 ? 0.780  ns/op
+TypeKindFrom.fromClass                     V  avgt    9  145.311 ? 0.812  ns/op
+TypeKindFrom.fromClass      java.lang.Object  avgt    9  139.149 ? 0.519  ns/op
+TypeKindFrom.fromClassDesc                 B  avgt    9   76.149 ? 0.350  ns/op
+TypeKindFrom.fromClassDesc                 C  avgt    9   75.970 ? 0.173  ns/op
+TypeKindFrom.fromClassDesc                 Z  avgt    9   76.035 ? 0.438  ns/op
+TypeKindFrom.fromClassDesc                 S  avgt    9   76.538 ? 1.112  ns/op
+TypeKindFrom.fromClassDesc                 I  avgt    9   76.124 ? 0.308  ns/op
+TypeKindFrom.fromClassDesc                 F  avgt    9   76.083 ? 0.145  ns/op
+TypeKindFrom.fromClassDesc                 J  avgt    9   76.289 ? 0.377  ns/op
+TypeKindFrom.fromClassDesc                 D  avgt    9   76.099 ? 0.086  ns/op
+TypeKindFrom.fromClassDesc                 V  avgt    9   76.096 ? 0.130  ns/op
+TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9   75.374 ? 1.990  ns/op


|   | pattern | baseline  | current | delta |
| --- | --- | --- | --- | --- |
| TypeKindFrom.fromClass | B | 443.536 | 157.207 | 182.14% |
| TypeKindFrom.fromClass | C | 439.212 | 164.131 | 167.60% |
| TypeKindFrom.fromClass | Z | 432.323 | 146.979 | 194.14% |
| TypeKindFrom.fromClass | S | 435.907 | 166.140 | 162.37% |
| TypeKindFrom.fromClass | I | 429.435 | 149.969 | 186.35% |
| TypeKindFrom.fromClass | F | 445.902 | 159.677 | 179.25% |
| TypeKindFrom.fromClass | J | 429.381 | 152.904 | 180.82% |
| TypeKindFrom.fromClass | D | 451.880 | 145.127 | 211.37% |
| TypeKindFrom.fromClass | V | 452.816 | 145.311 | 211.62% |
| TypeKindFrom.fromClass | java.lang.Object | 148.893 | 139.149 | 7.00% |
| TypeKindFrom.fromClassDesc | B | 164.456 | 76.149 | 115.97% |
| TypeKindFrom.fromClassDesc | C | 164.197 | 75.970 | 116.13% |
| TypeKindFrom.fromClassDesc | Z | 165.000 | 76.035 | 117.01% |
| TypeKindFrom.fromClassDesc | S | 164.275 | 76.538 | 114.63% |
| TypeKindFrom.fromClassDesc | I | 164.437 | 76.124 | 116.01% |
| TypeKindFrom.fromClassDesc | F | 164.765 | 76.083 | 116.56% |
| TypeKindFrom.fromClassDesc | J | 164.663 | 76.289 | 115.84% |
| TypeKindFrom.fromClassDesc | D | 164.284 | 76.099 | 115.88% |
| TypeKindFrom.fromClassDesc | V | 165.224 | 76.096 | 117.13% |
| TypeKindFrom.fromClassDesc | java.lang.Object | 164.755 | 75.374 | 118.58% |


## 2. Non-JVM Options

### 2.1 Script

git remote add wenshao g...@github.com:wenshao/jdk.git
git fetch wenshao

# baseline
git checkout 2b5fce63d3789472db1d17a09ad68b074553c240
make test TEST="micro:java.lang.classfile.TypeKindFrom"

# current
git checkout 91d247afa409d596a53bce6dc7a04b22891d7acb
make test TEST="micro:java.lang.classfile.TypeKindFrom"


## 2.2 Performance Numbers

-# baseline
-Benchmark                         (typeName)  Mode  Cnt  Score   Error  Units
-TypeKindFrom.fromClass                     B  avgt    9  1.562 ? 0.006  ns/op
-TypeKindFrom.fromClass                     C  avgt    9  1.720 ? 0.010  ns/op
-TypeKindFrom.fromClass                     Z  avgt    9  1.253 ? 0.007  ns/op
-TypeKindFrom.fromClass                     S  avgt    9  1.418 ? 0.018  ns/op
-TypeKindFrom.fromClass                     I  avgt    9  1.089 ? 0.007  ns/op
-TypeKindFrom.fromClass                     F  avgt    9  1.871 ? 0.011  ns/op
-TypeKindFrom.fromClass                     J  avgt    9  1.098 ? 0.004  ns/op
-TypeKindFrom.fromClass                     D  avgt    9  2.184 ? 0.014  ns/op
-TypeKindFrom.fromClass                     V  avgt    9  2.183 ? 0.015  ns/op
-TypeKindFrom.fromClass      java.lang.Object  avgt    9  0.660 ? 0.037  ns/op
-TypeKindFrom.fromClassDesc                 B  avgt    9  1.027 ? 0.036  ns/op
-TypeKindFrom.fromClassDesc                 C  avgt    9  1.014 ? 0.011  ns/op
-TypeKindFrom.fromClassDesc                 Z  avgt    9  1.012 ? 0.010  ns/op
-TypeKindFrom.fromClassDesc                 S  avgt    9  1.013 ? 0.008  ns/op
-TypeKindFrom.fromClassDesc                 I  avgt    9  1.018 ? 0.016  ns/op
-TypeKindFrom.fromClassDesc                 F  avgt    9  1.021 ? 0.015  ns/op
-TypeKindFrom.fromClassDesc                 J  avgt    9  1.014 ? 0.014  ns/op
-TypeKindFrom.fromClassDesc                 D  avgt    9  1.015 ? 0.016  ns/op
-TypeKindFrom.fromClassDesc                 V  avgt    9  1.027 ? 0.037  ns/op
-TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  1.015 ? 0.015  ns/op

+# current
+Benchmark                         (typeName)  Mode  Cnt  Score   Error  Units
+TypeKindFrom.fromClass                     B  avgt    9  1.091 ? 0.003  ns/op
+TypeKindFrom.fromClass                     C  avgt    9  1.559 ? 0.006  ns/op
+TypeKindFrom.fromClass                     Z  avgt    9  0.720 ? 0.080  ns/op
+TypeKindFrom.fromClass                     S  avgt    9  1.558 ? 0.005  ns/op
+TypeKindFrom.fromClass                     I  avgt    9  0.805 ? 0.027  ns/op
+TypeKindFrom.fromClass                     F  avgt    9  1.247 ? 0.005  ns/op
+TypeKindFrom.fromClass                     J  avgt    9  0.934 ? 0.002  ns/op
+TypeKindFrom.fromClass                     D  avgt    9  0.729 ? 0.075  ns/op
+TypeKindFrom.fromClass                     V  avgt    9  0.754 ? 0.003  ns/op
+TypeKindFrom.fromClass      java.lang.Object  avgt    9  0.758 ? 0.007  ns/op
+TypeKindFrom.fromClassDesc                 B  avgt    9  0.665 ? 0.037  ns/op
+TypeKindFrom.fromClassDesc                 C  avgt    9  0.695 ? 0.092  ns/op
+TypeKindFrom.fromClassDesc                 Z  avgt    9  0.662 ? 0.018  ns/op
+TypeKindFrom.fromClassDesc                 S  avgt    9  0.733 ? 0.004  ns/op
+TypeKindFrom.fromClassDesc                 I  avgt    9  0.662 ? 0.018  ns/op
+TypeKindFrom.fromClassDesc                 F  avgt    9  0.708 ? 0.066  ns/op
+TypeKindFrom.fromClassDesc                 J  avgt    9  0.659 ? 0.008  ns/op
+TypeKindFrom.fromClassDesc                 D  avgt    9  0.743 ? 0.029  ns/op
+TypeKindFrom.fromClassDesc                 V  avgt    9  0.720 ? 0.080  ns/op
+TypeKindFrom.fromClassDesc  java.lang.Object  avgt    9  0.694 ? 0.093  ns/op


|   | pattern | baseline  | current | delta |
| --- | --- | --- | --- | --- |
| TypeKindFrom.fromClass | B | 1.562 | 1.091 | 43.17% |
| TypeKindFrom.fromClass | C | 1.720 | 1.559 | 10.33% |
| TypeKindFrom.fromClass | Z | 1.253 | 0.720 | 74.03% |
| TypeKindFrom.fromClass | S | 1.418 | 1.558 | -8.99% |
| TypeKindFrom.fromClass | I | 1.089 | 0.805 | 35.28% |
| TypeKindFrom.fromClass | F | 1.871 | 1.247 | 50.04% |
| TypeKindFrom.fromClass | J | 1.098 | 0.934 | 17.56% |
| TypeKindFrom.fromClass | D | 2.184 | 0.729 | 199.59% |
| TypeKindFrom.fromClass | V | 2.183 | 0.754 | 189.52% |
| TypeKindFrom.fromClass | java.lang.Object | 0.660 | 0.758 | -12.93% |
| TypeKindFrom.fromClassDesc | B | 1.027 | 0.665 | 54.44% |
| TypeKindFrom.fromClassDesc | C | 1.014 | 0.695 | 45.90% |
| TypeKindFrom.fromClassDesc | Z | 1.012 | 0.662 | 52.87% |
| TypeKindFrom.fromClassDesc | S | 1.013 | 0.733 | 38.20% |
| TypeKindFrom.fromClassDesc | I | 1.018 | 0.662 | 53.78% |
| TypeKindFrom.fromClassDesc | F | 1.021 | 0.708 | 44.21% |
| TypeKindFrom.fromClassDesc | J | 1.014 | 0.659 | 53.87% |
| TypeKindFrom.fromClassDesc | D | 1.015 | 0.743 | 36.61% |
| TypeKindFrom.fromClassDesc | V | 1.027 | 0.720 | 42.64% |
| TypeKindFrom.fromClassDesc | java.lang.Object | 1.015 | 0.694 | 46.25% |

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20762#issuecomment-2322212655
PR Comment: https://git.openjdk.org/jdk/pull/20762#issuecomment-2323316074

Reply via email to