]> Cypherpunks repositories - gostls13.git/commit
runtime: increase precision of gctrace times
authorAustin Clements <austin@google.com>
Sun, 31 May 2015 01:47:00 +0000 (21:47 -0400)
committerAustin Clements <austin@google.com>
Tue, 2 Jun 2015 18:31:36 +0000 (18:31 +0000)
commitcc6a7fce533d7214c9cda0fc57af9ac948e61b7c
tree60c2e401ac30b804841a4c1d6eb1b818cf765ead
parent321663197e57ea5cea704b337cb8185f33883bd0
runtime: increase precision of gctrace times

Currently we truncate gctrace clock and CPU times to millisecond
precision. As a result, many phases are typically printed as 0, which
is fine for user consumption, but makes gathering statistics and
reports over GC traces difficult.

In 1.4, the gctrace line printed times in microseconds. This was
better for statistics, but not as easy for users to read or interpret,
and it generally made the trace lines longer.

This change strikes a balance between these extremes by printing
milliseconds, but including the decimal part to two significant
figures down to microsecond precision. This remains easy to read and
interpret, but includes more precision when it's useful.

For example, where the code currently prints,

gc #29 @1.629s 0%: 0+2+0+12+0 ms clock, 0+2+0+0/12/0+0 ms cpu, 4->4->2 MB, 4 MB goal, 1 P

this prints,

gc #29 @1.629s 0%: 0.005+2.1+0+12+0.29 ms clock, 0.005+2.1+0+0/12/0+0.29 ms cpu, 4->4->2 MB, 4 MB goal, 1 P

Fixes #10970.

Change-Id: I249624779433927cd8b0947b986df9060c289075
Reviewed-on: https://go-review.googlesource.com/10554
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/mgc.go