in oap-server/server-library/library-async-profiler-jfr-parser/src/main/java/org/apache/skywalking/oap/server/library/jfr/type/Classifier.java [80:105]
private Category detectClassLoading(long[] methods, byte[] types) {
for (int i = 0; i < methods.length; i++) {
String methodName = getMethodName(methods[i], types[i]);
if (methodName.equals("Verifier::verify")) {
return Category.CLASS_VERIFY;
} else if (methodName.startsWith("InstanceKlass::initialize")) {
return Category.CLASS_INIT;
} else if (methodName.startsWith("LinkResolver::") ||
methodName.startsWith("InterpreterRuntime::resolve") ||
methodName.startsWith("SystemDictionary::resolve")) {
return Category.CLASS_RESOLVE;
} else if (methodName.endsWith("ClassLoader.loadClass")) {
return Category.CLASS_LOAD;
} else if (methodName.endsWith("LambdaMetafactory.metafactory") ||
methodName.endsWith("LambdaMetafactory.altMetafactory")) {
return Category.LAMBDA_INIT;
} else if (methodName.endsWith("table stub")) {
return Category.VTABLE_STUBS;
} else if (methodName.equals("Interpreter")) {
return Category.INTERPRETER;
} else if (methodName.startsWith("I2C/C2I")) {
return i + 1 < types.length && types[i + 1] == TYPE_INTERPRETED ? Category.INTERPRETER : Category.ADAPTER;
}
}
return null;
}