Mercurial > public > mercurial-scm > hg-stable
diff contrib/chg/util.c @ 34316:b94db1780365
chg: show timestamp with debug messages
Like `strace -tr`, this helps finding performance bottlenecks.
Differential Revision: https://phab.mercurial-scm.org/D807
author | Jun Wu <quark@fb.com> |
---|---|
date | Sat, 23 Sep 2017 14:58:40 -0700 |
parents | f5764e177bbe |
children | 9724f54923ec |
line wrap: on
line diff
--- a/contrib/chg/util.c Mon Sep 25 11:05:16 2017 +0200 +++ b/contrib/chg/util.c Sat Sep 23 14:58:40 2017 -0700 @@ -14,6 +14,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/time.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> @@ -59,6 +60,13 @@ } static int debugmsgenabled = 0; +static double debugstart = 0; + +static double now() { + struct timeval t; + gettimeofday(&t, NULL); + return t.tv_usec / 1e6 + t.tv_sec; +} void enablecolor(void) { @@ -68,6 +76,7 @@ void enabledebugmsg(void) { debugmsgenabled = 1; + debugstart = now(); } void debugmsg(const char *fmt, ...) @@ -78,7 +87,7 @@ va_list args; va_start(args, fmt); fsetcolor(stderr, "1;30"); - fputs("chg: debug: ", stderr); + fprintf(stderr, "chg: debug: %4.6f ", now() - debugstart); vfprintf(stderr, fmt, args); fsetcolor(stderr, ""); fputc('\n', stderr);