|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectgate.util.reporting.PRTimeReporter
public class PRTimeReporter
A reporter class to generate a report on total time taken by each processing element across corpus.
| Field Summary | |
|---|---|
private File |
benchmarkFile
A handle to the input benchmark file (benchmark.txt). |
private static int |
FILE_CHUNK_SIZE
Chunk size in which file will be read. |
private Hashtable<String,String> |
globalTotal
A Hashtable storing the time taken by each pipeline. |
private double |
globalValue
Place holder for storing the total time taken by a pipeline. |
private String |
htmlElementTree
A String containing the HTML code to generate collapsible tree for processing elements. |
private String |
htmlTimeInPercentTree
A String containing the HTML code to generate collapsible tree for time taken by each processing elements (in %). |
private String |
htmlTimeTree
A String containing the HTML code to generate collapsible tree for time taken by each processing elements. |
private int |
level
A integer to track tree depth level. |
private String |
logicalStart
A marker indicating the start of current logical run. |
static String |
MEDIA_HTML
This string constant when set as print media indicates that the report is printed in HTML format. |
static String |
MEDIA_TEXT
This string constant when set as print media indicates that the report is printed in TEXT format. |
private static String |
NL
An OS independent line separator. |
HashSet<String> |
pipelineNames
Names of the given pipeline for which the entries are present in given benchmark file. |
private ArrayList<String> |
printLines
An ArrayList containing the lines to be printed in the final text report. |
private String |
printMedia
Report media. |
private File |
reportFile
Path where to save the report file. |
static String |
SORT_EXEC_ORDER
This string constant when set as sort order indicates that the processing elements are sorted in the order of their execution. |
static String |
SORT_TIME_TAKEN
This string constant when set as sort order indicates that the processing elements are sorted in the descending order of processing time taken by a particular element. |
private String |
sortOrder
A String specifying the sorting order to be used while displaying the report. |
private static int |
STATUS_ERROR
Status flag for error exit. |
private static int |
STATUS_NORMAL
Status flag for normal exit. |
private boolean |
suppressZeroTimeEntries
Indicate whether or not to show 0 millisecond entries. |
int |
validEntries
An integer containing the count of total valid log entries present in input file provided. |
| Constructor Summary | |
|---|---|
PRTimeReporter()
No Argument constructor. |
|
PRTimeReporter(String[] args)
A constructor to be used while executing from the command line. |
|
| Method Summary | |
|---|---|
Object |
calculate(Object reportContainer)
Calculates the sub totals at each level. |
void |
executeReport()
A single method to execute report (A command line counter part API ). |
private void |
generateCollapsibleHTMLTree(LinkedHashMap<String,Object> gStore,
boolean suppressZeroTimeEntries)
Creates three tree like ul/li structures 1. |
private void |
generateReport()
Calls store, calculate and printReport for generating the actual report. |
File |
getBenchmarkFile()
|
String |
getLogicalStart()
Returns the marker indicating logical start of a run. |
String |
getPrintMedia()
Returns the name of the media on which report will be generated. e.g. text, HTML. |
File |
getReportFile()
|
String |
getSortOrder()
Returns the sorting order specified for the report (EXEC_ORDER or TIME_TAKEN). |
private int |
getTotal(LinkedHashMap<String,Object> reportContainer)
Calculates the total of the time taken by processing element at each leaf level. |
boolean |
isSuppressZeroTimeEntries()
Returns the flag indicating whether or not to suppress the processing elements from the report which took 0 milliseconds. |
static void |
main(String[] args)
A main method which acts as a entry point while executing a report via command line. |
private void |
organizeEntries(LinkedHashMap<String,Object> store,
String[] tokens,
String bTime)
Generates a tree like structure made up of LinkedHashMap containing the processing elements and time taken by each element totaled at leaf level over corpus. |
void |
parseArguments(String[] args)
Parses the report arguments. |
private boolean |
parseLinesFromLast(byte[] bytearray,
Vector<String> lastNlines)
Ensures that the required line is read from the given file part. |
private void |
prettyPrint(LinkedHashMap<String,Object> gStore,
String separator,
boolean suppressZeroTimeEntries)
Prints a processing elements structure in a tree like format with time taken by each element in milliseconds and in %. |
void |
printReport(Object reportSource,
File outputFile)
Prints a report as per the value provided for print media option. |
private void |
printToHTML(LinkedHashMap<String,Object> gStore,
File outputFile,
boolean suppressZeroTimeEntries)
Prints a report in HTML format. |
private void |
printToText(Object reportContainer,
File outputFile,
boolean suppressZeroTimeEntries)
Prints benchmark report in text format. |
void |
setBenchmarkFile(File benchmarkFile)
Sets the input benchmark file from which the report is generated. |
void |
setLogicalStart(String logicalStart)
Sets optionally a string indicating the logical start of a run. |
void |
setPrintMedia(String printMedia)
Sets the media on which report will be generated. |
void |
setReportFile(File reportFile)
If not set, the default is the file name "report.txt/html" in the system temporary directory. |
void |
setSortOrder(String sortOrder)
Sets the sorting order of the report. |
void |
setSuppressZeroTimeEntries(boolean suppressZeroTimeEntries)
Allow to suppress the processing elements from the report which took 0 milliseconds. |
private LinkedHashMap |
sortHashMapByValues(LinkedHashMap passedMap)
Sorts LinkedHashMap by its values(natural descending order). keeps the duplicates as it is. |
private LinkedHashMap<String,Object> |
sortReport(LinkedHashMap<String,Object> gStore)
Sorts the processing element entries inside tree like structure made up of LinkedHashMap. |
Object |
store(File inputFile)
Stores GATE processing elements and the time taken by them in an in-memory data structure for report generation. |
private long |
tail(File fileToBeRead,
int chunkSize)
Reads the given file upside down. |
static void |
usage()
Display a usage message |
private boolean |
validateLogEntry(String benchmarkIDChain,
ArrayList<String> startTokens)
Ignores the inconsistent log entries from the benchmark file. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String MEDIA_TEXT
public static final String MEDIA_HTML
public static final String SORT_EXEC_ORDER
public static final String SORT_TIME_TAKEN
private Hashtable<String,String> globalTotal
private ArrayList<String> printLines
private static final String NL
private String htmlElementTree
private String htmlTimeTree
private String htmlTimeInPercentTree
private int level
private double globalValue
private static final int STATUS_NORMAL
private static final int STATUS_ERROR
public int validEntries
private static final int FILE_CHUNK_SIZE
public HashSet<String> pipelineNames
private File benchmarkFile
private boolean suppressZeroTimeEntries
private String printMedia
private String sortOrder
private File reportFile
private String logicalStart
| Constructor Detail |
|---|
public PRTimeReporter()
PRTimeReporter(String[] args)
args - array containing command line arguments.| Method Detail |
|---|
public Object store(File inputFile)
throws BenchmarkReportInputFileFormatException
store in interface BenchmarkReportableinputFile - A File handle of the input log file.
BenchmarkReportInputFileFormatException
private void organizeEntries(LinkedHashMap<String,Object> store,
String[] tokens,
String bTime)
store - An Object of type LinkedHashMaptokens - An array consisting of remaining benchmarkID tokens except the one
being processed.bTime - time(in milliseconds) of the benchmarkID token being processed.private LinkedHashMap<String,Object> sortReport(LinkedHashMap<String,Object> gStore)
gStore - An Object of type LinkedHashMapprivate LinkedHashMap sortHashMapByValues(LinkedHashMap passedMap)
passedMap - An Object of type LinkedHashMap to be sorted by its values.
public Object calculate(Object reportContainer)
calculate in interface BenchmarkReportablereportContainer - An Object of type LinkedHashMapprivate int getTotal(LinkedHashMap<String,Object> reportContainer)
reportContainer - An Object of type LinkedHashMap
public void printReport(Object reportSource,
File outputFile)
printReport in interface BenchmarkReportablereportSource - An Object of type LinkedHashMapoutputFile - Path where to save the report.
private void printToText(Object reportContainer,
File outputFile,
boolean suppressZeroTimeEntries)
reportContainer - An Object of type LinkedHashMapoutputFile - An object of type File representing the output report file.suppressZeroTimeEntries - Indicate whether or not to show 0 millisecond entries.
private void prettyPrint(LinkedHashMap<String,Object> gStore,
String separator,
boolean suppressZeroTimeEntries)
gStore - An Object of type LinkedHashMapseparator - A String separator to indent the processing elements in tree like
structure.suppressZeroTimeEntries - Indicate whether or not to show 0 millisecond entries.
private void printToHTML(LinkedHashMap<String,Object> gStore,
File outputFile,
boolean suppressZeroTimeEntries)
gStore - An Object of type LinkedHashMapoutputFile - An object of type File representing the output report file to
which the HTML report is to be written.suppressZeroTimeEntries - Indicate whether or not to show 0 millisecond entries.
private void generateCollapsibleHTMLTree(LinkedHashMap<String,Object> gStore,
boolean suppressZeroTimeEntries)
gStore - An Object of type LinkedHashMapsuppressZeroTimeEntries - Indicate whether or not to show 0 millisecond entries.
private boolean parseLinesFromLast(byte[] bytearray,
Vector<String> lastNlines)
bytearray - A part of a file being read upside down.lastNlines - A vector containing the lines extracted from file part.
private long tail(File fileToBeRead,
int chunkSize)
throws BenchmarkReportInputFileFormatException
fileToBeRead - An object of type File representing the file to be read.chunkSize - An integer specifying the size of the chunks in which file will be
read.
BenchmarkReportInputFileFormatException
private boolean validateLogEntry(String benchmarkIDChain,
ArrayList<String> startTokens)
benchmarkIDChain - The chain of benchmark ids. This is the third token in the
benchmark file.startTokens - An array of first tokens in the benchmark id chain.
public void parseArguments(String[] args)
parseArguments in interface BenchmarkReportableargs - A string array containing the command line arguments.public static void usage()
public static void main(String[] args)
throws BenchmarkReportInputFileFormatException
args - A string array containing the command line arguments.
BenchmarkReportInputFileFormatException
private void generateReport()
throws BenchmarkReportInputFileFormatException
BenchmarkReportInputFileFormatException
public void executeReport()
throws BenchmarkReportInputFileFormatException
BenchmarkReportable
executeReport in interface BenchmarkReportableBenchmarkReportInputFileFormatExceptionpublic boolean isSuppressZeroTimeEntries()
public void setSuppressZeroTimeEntries(boolean suppressZeroTimeEntries)
suppressZeroTimeEntries - if true suppress zero time entries.
This Parameter is ignored if SortOrder specified is
SORT_TIME_TAKEN. True by default.public String getPrintMedia()
public void setPrintMedia(String printMedia)
printMedia - Type of media on which the report will be generated.
Must be MEDIA_TEXT or MEDIA_HTML.
The default is MEDIA_HTML.public String getSortOrder()
public void setSortOrder(String sortOrder)
sortOrder - Sorting order of the report.
Must be SORT_EXEC_ORDER or SORT_TIME_TAKEN.
Default is SORT_EXEC_ORDER.public String getLogicalStart()
public void setLogicalStart(String logicalStart)
logicalStart - A String indicating the logical start of a run.
Useful when you you have marked different runs in
your benchmark file with this string at their start.
By default the value is null.public File getBenchmarkFile()
setBenchmarkFile(java.io.File)public void setBenchmarkFile(File benchmarkFile)
benchmarkFile - Input benchmark file.public File getReportFile()
setReportFile(java.io.File)public void setReportFile(File reportFile)
reportFile - file path to the report file to write.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||