Fix the performance regression from 6.1 by splitting the generic cache into specific ones.
Result of benchmarks with current code:
run1:
Benchmark Mode Cnt Score Error Units
AdapterBenchmark.getClassInfo_asm6_1 thrpt 30 14141,922 ± 41,536 ops/s
AdapterBenchmark.getClassInfo_asmCurrent thrpt 30 14819,696 ± 42,003 ops/s
AdapterBenchmark.read_asm6_1 thrpt 30 646,597 ± 1,359 ops/s
AdapterBenchmark.read_asmCurrent thrpt 30 628,984 ± 1,697 ops/s
run2:
Benchmark Mode Cnt Score Error Units
AdapterBenchmark.getClassInfo_asm6_1 thrpt 30 14082,588 ± 42,736 ops/s
AdapterBenchmark.getClassInfo_asmCurrent thrpt 30 14628,865 ± 35,585 ops/s
AdapterBenchmark.read_asm6_1 thrpt 30 639,519 ± 1,366 ops/s
AdapterBenchmark.read_asmCurrent thrpt 30 624,722 ± 1,665 ops/s
Result of benchmark with proposed change:
run1:
Benchmark Mode Cnt Score Error Units
AdapterBenchmark.getClassInfo_asm6_1 thrpt 30 14043,245 ± 52,400 ops/s
AdapterBenchmark.getClassInfo_asmCurrent thrpt 30 14623,223 ± 41,837 ops/s
AdapterBenchmark.read_asm6_1 thrpt 30 644,845 ± 1,593 ops/s
AdapterBenchmark.read_asmCurrent thrpt 30 645,371 ± 1,641 ops/s
run2:
Benchmark Mode Cnt Score Error Units
AdapterBenchmark.getClassInfo_asm6_1 thrpt 30 14223,612 ± 48,813 ops/s
AdapterBenchmark.getClassInfo_asmCurrent thrpt 30 15119,416 ± 47,059 ops/s
AdapterBenchmark.read_asm6_1 thrpt 30 638,051 ± 1,492 ops/s
AdapterBenchmark.read_asmCurrent thrpt 30 640,978 ± 1,493 ops/s