org.netbeans.lib.profiler.instrumentation |
|
Java Source File Name | Type | Comment |
BadLocationException.java | Class | |
ClassManager.java | Class | Basic utility methods used by all scaner classes. |
ClassRewriter.java | Class | This class contains functionality to rewrite a given complete class file, replacing given
methodinfos and appending the constant pool. |
CodeRegionEntryExitCallsInjector.java | Class | Specialized subclass of Injector, that provides injection of our standard Code Region instrumentation -
codeRegionEntry() and codeRegionExit() calls - in appropriate places. |
CodeRegionMethodInstrumentor.java | Class | High-level access to functionality that instruments a (so far single) code region in a (single again) TA method. |
ConstantPoolExtension.java | Class | Basic support for adding entries to a class's constant pool.
This class allows one to create a semi-prepared chunk of bytes (class PackedCPoolFragment) representing entries that
should be added to the constant pool of an arbitrary class. |
CPExtensionsRepository.java | Class | A repository containing semi-prepared constant pool fragments for all kinds of instrumentation used in JFluid. |
DynamicConstantPoolExtension.java | Class | Support for adding multiple different fragments to a class's constant pool, that also keeps track of whether
a particular fragment has already been added to this class or not.
The main API call for this class is getCPFragment, that returns a relocated (i.e. |
HandleReflectInvokeCallInjector.java | Class | Specialized subclass of Injector, that provides injection of our standard handleJavaLangReflectMethodInvoke(Method method)
call into the java.lang.reflect.Method.invoke() method. |
HandleServletDoMethodCallInjector.java | Class | |
Injector.java | Class | Base class for a number of classes performing concrete method instrumentation injections. |
InstrumentationException.java | Class | |
InstrumentationFactory.java | Class | This class provides essentially a convenience static-method API that allows one to obtain a version of a particular
method, instrumented in a particular predefined way. |
Instrumentor.java | Class | A high-level interface to all method instrumentation operations. |
JavaClassConstants.java | Interface | Various constants that may be used in a binary class file. |
MemoryProfMethodInstrumentor.java | Class | Base class providing common functionality for instrumenting TA methods to generate object allocation/liveness data.
The fact that there are two classes at this time, MemoryProfMethodInstrumentor and ObjLivenessMethodInstrumentor, is
explained by purely historical reasons - in the past we had instrumentation implemented differently for object allocation
and liveness profiling. |
MethodEntryExitCallsInjector.java | Class | Specialized subclass of Injector, that provides injection of our standard "recursive" instrumentation -
methodEntry(char methodId) (rootEntry(char methodId)) and methodExit(char methodId) calls - in appropriate places
in TA methods. |
MiscInstrumentationOps.java | Class | A number of miscellaneous, relatively high-level, instrumentation operations. |
ObjLivenessInstrCallsInjector.java | Class | Specialized subclass of Injector, that provides injection of our object allocation and liveness instrumentation -
ProfilerRuntimeObjAlloc/ProfilerRuntimeObjLiveness.traceObjAlloc(Object obj, char classId) call
after each "new", "anewarray" or "newarray" bytecode. |
ObjLivenessMethodInstrumentor.java | Class | High-level access to functionality that instruments TA methods to generate object allocation and liveness data. |
ProfilePointHitCallInjector.java | Class | |
RecursiveMethodInstrumentor.java | Class | Base class for two "recursive" method scanners, implementing the "eager" and "lazy" transitive call subgraph revelation and
instrumentation schemes. |
RecursiveMethodInstrumentor1.java | Class | Recursive method scaner that implements the lazy instrumentation scheme ("Scheme B" in the JFluid paper). |
RecursiveMethodInstrumentor2.java | Class | Recursive method scaner that implements the eager instrumentation scheme ("Scheme A" in the JFluid paper). |
RecursiveMethodInstrumentor3.java | Class | Recursive method scaner that implements the total instrumentation scheme. |
RootMethods.java | Class | |
SingleMethodScaner.java | Class | Base class, containing functionality to scan bytecodes in a single method. |
SpecialCallInjector.java | Class | Specialized subclass of Injector, that provides special injection of java.lang.Method.invoke() and HttpServer.do*()
methods. |