Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2013-08-23 | 3.1 kB | |
JPoorMansTimingAndProfiling-1.2.6-src.zip | 2013-05-08 | 194.4 kB | |
Totals: 2 Items | 197.5 kB | 0 |
Project Home
About The Java Poor Man's Timing And Profiling Library
This package helps profile the execution-time characteristics of Java code. The classes use Java's nanosecond timing capability to get the best resolution possible. See the note in the JavaDoc's about nanosecond timing.
This package has functions to:
- Track elapsed time intervals of key application events
- Measure and compute time statistics for key application events
- Compute and report metrics derived from the key application events and other application parameters as needed
- Track and report timing's following the nested nature of application logic
Details and examples are contained in the include JavaDocs in the doc/ directory.
Build Targets
"ant jar" - Creates a single library .jar file
Dependencies
This software is dependent on the following libraries which may be downloaded from the URL's specified
- JUnit - http://www.junit.org (only for running the provided test programs)
- slf4j - http://www.slf4j.org/download.html
- log4j - http://logging.apache.org/log4j/1.2/download.html (optional at runtime)
License & Release
This is being made available under a BSD-style license. Approved for public release by The MITRE Corporation. Approved for Public Release: 12-2651. Distribution Unlimited.
Versions
1.2.6
- Changed the default extension for the analysis event log to .csv
- Added a flush() method to AnalysisEvent
1.2.5
- Changed the hard runtime dependence on Log4j into an optional one.
All logging is done via SLF4J. However, if Log4j exists and has not been initialized it will be initialized. If Log4j does not exist it is assumed the proper logger has already been initialized. There is still a compile dependence on Log4j.
1.2.4
- Fixed output formatting bug
1.2.3
- Added AbsoluteNanoTime which allows getting nanosecond time relative to a recent base year so that nano-time is the same on all nodes.
- Added another overload of Timing.clearAll()
- Tweaks to dumpTimings()
- Fixed minor formatter bug
1.2.2
- Fixed to work with multiple threads
- Added StopWatch.enableStartStopFromAnyThread() in case you don't need thread-aware behavior
- Added StopWatch.stopIfStarted()
- Removed the deprecated ENABLE_TIMING and ENABLE_MEMORY constants
- Simplified the example ExampleUseOfDerivedComputation.java a little
1.2.1
- Readme.txt update
1.2.0
- Add a small warmup loop to determineNanosecondGranularity() to exercise System.nanoTime()
- Added a new test, DetermineNanoResoultionRepeatedly
- Added a new method Timing.determineNanosecondJitterMinMax()
1.1
- Cleaned up the factory methods for creating StopWatch's and MemoryWatch's
- Added a LogFileMaker class that may be helpful for creating experiment-specific directories for logging.
1.0
- Initial