|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.objectweb.asm.jip.MethodAdapter
com.mentorgen.tools.profile.instrument.PerfMethodAdapter
public class PerfMethodAdapter
This class is responsible for instrumenting a method to call the profiler in order for performance data to be gathered. The basic idea is that the profiler is called when a method starts and when it exists which allows the profiler to gather performance data (note that a method can be exited from when an exception is thrown as well as when return is called). The one big caveate is static initializers. They are not called as part of the flow of the program — they are called by the classloader. Since they whole premise of the profiler is built on the idea of a orderly call stack, static initializers are not instrumented.
| Field Summary |
|---|
| Fields inherited from class org.objectweb.asm.jip.MethodAdapter |
|---|
mv |
| Constructor Summary | |
|---|---|
PerfMethodAdapter(MethodVisitor visitor,
java.lang.String className,
java.lang.String methodName)
|
|
| Method Summary | |
|---|---|
void |
visitCode()
Starts the visit of the method's code, if any (i.e. |
void |
visitInsn(int inst)
Visits a zero operand instruction. |
void |
visitLabel(Label label)
Visits a label. |
void |
visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Visits a method instruction. |
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
java.lang.String type)
Visits a try catch block. |
| Methods inherited from class org.objectweb.asm.jip.MethodAdapter |
|---|
visitAnnotation, visitAnnotationDefault, visitAttribute, visitEnd, visitFieldInsn, visitIincInsn, visitIntInsn, visitJumpInsn, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTypeInsn, visitVarInsn |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PerfMethodAdapter(MethodVisitor visitor,
java.lang.String className,
java.lang.String methodName)
| Method Detail |
|---|
public void visitCode()
MethodVisitor
visitCode in interface MethodVisitorvisitCode in class MethodAdapterpublic void visitInsn(int inst)
MethodVisitor
visitInsn in interface MethodVisitorvisitInsn in class MethodAdapterinst - the opcode of the instruction to be visited. This opcode is
either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2,
ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0,
FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD,
DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE,
DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP,
DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD,
DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV,
FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL,
LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR,
I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B,
I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN,
FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW,
MONITORENTER, or MONITOREXIT.
public void visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
MethodVisitor
visitMethodInsn in interface MethodVisitorvisitMethodInsn in class MethodAdapteropcode - the opcode of the type instruction to be visited. This
opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or
INVOKEINTERFACE.owner - the internal name of the method's owner class (see getInternalName).name - the method's name.desc - the method's descriptor (see Type).
public void visitTryCatchBlock(Label start,
Label end,
Label handler,
java.lang.String type)
MethodVisitor
visitTryCatchBlock in interface MethodVisitorvisitTryCatchBlock in class MethodAdapterstart - beginning of the exception handler's scope (inclusive).end - end of the exception handler's scope (exclusive).handler - beginning of the exception handler's code.type - internal name of the type of exceptions handled by the
handler, or null to catch any exceptions (for "finally"
blocks).public void visitLabel(Label label)
MethodVisitor
visitLabel in interface MethodVisitorvisitLabel in class MethodAdapterlabel - a Label object.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||