Skip to content

Releases: ethlo/chronograph

v5.0.0

14 Feb 08:25

Choose a tag to compare

We are excited to announce the release of Chronograph 5.0.0! This version introduces a Java module descriptor, making the library fully modular and improving compatibility with modern Java applications. Due to this change, all packages have been moved from com.ethlo.time to com.ethlo.chronograph.

🔄 Breaking Changes:

  • Package Renaming:
    • All classes previously under com.ethlo.time are now located in com.ethlo.chronograph.
    • If you are upgrading from 4.x, you will need to update your imports accordingly.
  • Java Module Support:
    • Chronograph now includes a module-info.java descriptor. The module name is com.ethlo.chronograph.

🚀 Why the Major Version Bump?

This release does not introduce new functionality but requires package changes, which could break existing imports in your codebase. To maintain semantic versioning best practices, we have incremented the major version to 5.0.0.

📌 Upgrade Guide:

  1. Update your dependency version to 5.0.0.
  2. Replace all com.ethlo.time.* imports with com.ethlo.chronograph.*.
  3. If using JPMS (Java Platform Module System), add requires com.ethlo.chronograph; to your module-info.java file.

v4.0.0

10 Feb 08:38

Choose a tag to compare

🚀 New Features

Table output

  • Nested Task Support: Chronograph now properly handles nested tasks. Tasks executed within other tasks no longer contribute to the total time of their parent, ensuring accurate statistics.
  • Self-Time Calculation: Added a self-time metric to track the time a task spends executing, excluding its nested subtasks.
  • Hierarchy-Aware Summary Table: The ASCII summary table now visually represents nested tasks with indentation , making it easier to interpret hierarchical task structures.
  • Task Stack for Execution Context: Internally, a stack-based approach is now used to track task execution order and reconstruct hierarchy when reporting.

🔧 Improvements

  • Improved Formatting: The summary table layout has been refined to better display execution statistics in a readable format.
  • Enhanced API Usability: Cleaned up the data structure, so it is easier to pull the data you need after an execution.

🔄 Upgrade Notes

The main usability change is that the prettyprint methods have been removed from the Chronograph. You can use the default toString method for one off outputs, or you should use the TableOutputFormatter or the new JsonOutputFormatter, if that is your thing.

📥 Feedback & Contributions

We welcome feedback and contributions! If you encounter any issues or have feature requests, please open an issue or submit a pull request on our repository.

Enjoy Chronograph 4.0! 🚀


v3.1.0

10 Dec 10:21

Choose a tag to compare

  • Keep the same resolution an unit in the Total column for easier comparison.
  • Avoid outputting ANSI color codes if no colored theme is enabled.

v3.0.0

05 Dec 10:28
cb4093b

Choose a tag to compare

What's Changed

  • Use ASCII output as default for compatibility
  • Overloaded methods .time(...) for all Java functional interfaces on Chronograph class

v2.0.0

18 Sep 13:13
475eb3c

Choose a tag to compare

New major release focusing on bug-fixes and reducing complexity of statistics handling.
There should be few changes required for typical default use.

v1.4.0

24 Mar 19:51

Choose a tag to compare

Support merging of results from multiple instances of Chronograph via public static ChronographData combine(final String name, final List<Chronograph> toCombine). Useful for multi-threaded use where each thread has its own Chronograph instance.

v1.3.0

16 Jan 14:54

Choose a tag to compare

Added support for a ScheduledTaskExecutor, a thread-driven sampler to improve sampling consistency and reduce overhead.

v1.2.0

27 Aug 13:51
323427c

Choose a tag to compare

  • Support for throughput or duration output for tasks
  • Support "benchmark mode", i.e. results are sorted best to worst.
  • More output options, like TSV support
  • Usability improvements
  • Bug-fixes

v1.1.0

22 Aug 19:20

Choose a tag to compare

  • Theme support.
  • Many more metrics. Highly optimized collection for holding for measurements for median and percentiles.
  • Much better table layout. Dynamic collapsing and sizing.

v1.0.1

16 Aug 10:41

Choose a tag to compare

  • Support for functional/lambda style timing.
  • Using ms, μs, ns for millisecond, microsecond and nanosecond, respectively.