scope bench_classValueBasedMethodCache static long #cachesMade; static final ClassValue<_MethodCache> methodCacheClassValue = new { protected _MethodCache computeValue(Class type) { ++cachesMade; ret new _MethodCache(type); } }; static _MethodCache getMethodCache_cv(Class c) { ret methodCacheClassValue.get(c); } svoid bench_classValueBasedMethodCache() { print("Loading 1000 classes"); L classes = map classForName(takeFirst(1000, classNamesInJigsawModule("java.base"))); print("Have " + nClasses(classes) + ". Filling method caches"); print(+cachesMade); time { for (c : classes) assertNotNull(getMethodCache_cv(c)); } print(+cachesMade); print("Looking them up again."); benchFor10(-> { for (c : classes) assertNotNull(getMethodCache_cv(c)); }); print(+cachesMade); }