RFR: 8357828: Add a timestamp to jcmd diagnostic commands [v2]

Ivan Bereziuk duke at openjdk.org
Tue Jan 20 08:57:52 UTC 2026


> `jcmd` provides great diagnostics but many commands lack a timestamp in their output.
> Adding a timestamp to the output of some would add value for those debugging JVM data.
> 
> Some diagnostic commands already provide timestamps. For example `Thread.print` already prints one of "yyyy-MM-dd HH:mm:ss" format.
> 
> With this MR I propose to introduce time-stamping to all diagnostic `jcmd` commands in a form of an additional common flag "-T":
> 
> jcmd [pid | main-class] [-T] command... | PerfCounter.print | -f filename
>                         ^^^^
> 
> * The choice for time format is "yyyy-MM-dd HH:mm:ss" as it is already used in `Thread.print`.
> * `Thread.print` prints timestamp irrespectively from "-T" flag presence to preserve backwards compatibility.
> 
> I haven't added a timestamp to the following diagnostic command:
> * `VM.uptime` - command run with `-date` argument will also print a timestamp;
> * `VM.system_properties` - as the output already lists a timestamp. Not sure if we need more timestamps here.
> * `Thread.dump_to_file` - the content dumped to a file already has a timestamp;

Ivan Bereziuk has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 15 additional commits since the last revision:

 - remove TimeStamp::No as it's not used. virtual should be flipped to override in bulk (afressed clang warning)
 - Merge branch 'master' into 8357828_add_timestamp_to_jcmd
 - changes to jcmd.md
 - undo changes to reorder_help_cmd()
 - cleanup
 - add timestamp to VM.version. Add test
 - updated jcmd usage text
 - undo the changes to the modified earlier tests as timestamp presence is fully backwards compatible
 - introduce -T as a commong flag
 - Merge branch 'master' into 8357828_add_timestamp_to_jcmd
 - ... and 5 more: https://git.openjdk.org/jdk/compare/d1597314...5f1cefe0

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/27368/files
  - new: https://git.openjdk.org/jdk/pull/27368/files/bfa2a927..5f1cefe0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=27368&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=27368&range=00-01

  Stats: 648983 lines in 8151 files changed: 439394 ins; 124768 del; 84821 mod
  Patch: https://git.openjdk.org/jdk/pull/27368.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/27368/head:pull/27368

PR: https://git.openjdk.org/jdk/pull/27368


More information about the hotspot-runtime-dev mailing list