de.uka.ipd.sdq.ByCounter.utils.wide
Class WideVsNormal
java.lang.Object
de.uka.ipd.sdq.ByCounter.utils.wide.WideVsNormalEmptyHelper
de.uka.ipd.sdq.ByCounter.utils.wide.WideVsNormal
public class WideVsNormal
- extends WideVsNormalEmptyHelper
This class generates source code which serves as input for analysis.
It works as follows:
a) adjust nrOfVars, nrOfIters, arraySize and useArrayExplicitly at the beginning of main -
keep in mind that JVM specification limits the maximum bytesize of a method
b) run main (with generationInsteadOfRun set to true)
c) copy cmd output to this class (thus adding a new method to it)
d) run ASMifier on the new method (or the entire class)
e) create a new Java class in the workspace which contains the ASM bytecode-generating code
obtained in step d)
f) remove and modify the Dump class created in step e) - note that
if the dump() method is too large, it can be (i) split into several methods or
(ii) be reduced to generate the code for the considered method only
g) Ensure that the dump method of Dump class writes the bytecode into a file
h) Create a class that calls the method in the dumped file, in a way similar to what the
measurement code in this class' main method is doing
i) compare the results - enjoy and publish!
adjust
TODO -server, -Xint etc. testen
- Author:
- Michael Kuperberg
Method Summary |
static void |
main(java.lang.String[] args)
This method generates source code (by printing it to standard out aka System.out),
or executes a method (name starts with test). |
void |
printSourceCodeToCmd(int numberOfVariables,
int nrOfIterations,
WideOperandType type,
boolean useArrayExplicitly,
int precomputedArraySize,
java.lang.String methodName)
TODO modify: use StringBuffer |
void |
randomVariablesIterationGeneration(int numberOfVariables,
int nrOfIterations,
WideOperandType type,
WideInstructionType instr,
boolean useArrayExplicitly,
int arraySize)
TODO still unparameterised... |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
WideVsNormal
public WideVsNormal()
main
public static void main(java.lang.String[] args)
- This method generates source code (by printing it to standard out aka System.out),
or executes a method (name starts with test).
- Parameters:
args
-
printSourceCodeToCmd
public void printSourceCodeToCmd(int numberOfVariables,
int nrOfIterations,
WideOperandType type,
boolean useArrayExplicitly,
int precomputedArraySize,
java.lang.String methodName)
- TODO modify: use StringBuffer
- Parameters:
numberOfVariables
- nrOfIterations
- type
- useArrayExplicitly
- precomputedArraySize
- methodName
-
randomVariablesIterationGeneration
public void randomVariablesIterationGeneration(int numberOfVariables,
int nrOfIterations,
WideOperandType type,
WideInstructionType instr,
boolean useArrayExplicitly,
int arraySize)
- TODO still unparameterised...
- Parameters:
numberOfVariables
- nrOfIterations
- type
- instr
- useArrayExplicitly
- arraySize
-