changeset 39910:2d11cb9d68cb

timevar: improve the output format From: Execution times (seconds) reader : 0,01 ( 3%) usr 0,00 (16%) sys 0,00 ( 0%) wall outputting report : 0,03 ( 6%) usr 0,00 (15%) sys 0,00 ( 0%) wall parser action tables : 0,02 ( 4%) usr 0,00 ( 2%) sys 0,00 ( 0%) wall outputting parser : 0,01 ( 2%) usr 0,00 (13%) sys 0,00 ( 0%) wall running m4 : 0,37 (84%) usr 0,00 (50%) sys 0,00 ( 0%) wall total time : 0,44 0,01 0,00 To: Execution times (seconds) CPU user CPU system wall clock reader 0,020 ( 4%) 0,002 ( 9%) 0,000000 ( 0%) outputting report 0,029 ( 6%) 0,002 (11%) 0,000000 ( 0%) parser action tables 0,020 ( 4%) 0,001 ( 6%) 0,000000 ( 0%) outputting parser 0,014 ( 3%) 0,002 (10%) 0,000000 ( 0%) running m4 0,431 (83%) 0,012 (59%) 0,000000 ( 0%) total time 0,522 0,020 0,000000 Suggested by Bruno Haible. See https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00040.html. * lib/timevar.c (timevar_print): Use %7.3f for usr/sys and %11.6f for wall, since its resolution is much higher.
author Akim Demaille <akim.demaille@gmail.com>
date Thu, 11 Oct 2018 22:15:36 +0200
parents 24499928832b
children 5f0ef98dc2ce
files ChangeLog lib/timevar.c
diffstat 2 files changed, 20 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Oct 11 17:54:35 2018 +0200
+++ b/ChangeLog	Thu Oct 11 22:15:36 2018 +0200
@@ -1,3 +1,11 @@
+2018-10-13  Akim Demaille  <akim@lrde.epita.fr>
+
+	timevar: improve the output format
+	Suggested by Bruno Haible.
+	See https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00040.html.
+	* lib/timevar.c (timevar_print): Use %7.3f for usr/sys and %11.6f for
+	wall, since its resolution is much higher.
+
 2018-10-13  Akim Demaille  <akim@lrde.epita.fr>
 
 	timevar: expect that getrusage is available.
--- a/lib/timevar.c	Thu Oct 11 17:54:35 2018 +0200
+++ b/lib/timevar.c	Thu Oct 11 22:15:36 2018 +0200
@@ -304,7 +304,10 @@
 
   struct timevar_time_def const* total = &timevars[tv_total].elapsed;
 
-  fputs (_("\nExecution times (seconds)\n"), fp);
+  fprintf (fp, "%-22s\n",
+           _("Execution times (seconds)"));
+  fprintf (fp, " %-22s   %-13s %-13s %-16s\n",
+           "", _("CPU user"), _("CPU system"), _("wall clock"));
   for (unsigned /* timevar_id_t */ id = 0; id < (unsigned) TIMEVAR_LAST; ++id)
     {
       struct timevar_def *tv = &timevars[(timevar_id_t) id];
@@ -327,20 +330,20 @@
         continue;
 
       /* The timing variable name.  */
-      fprintf (fp, " %-22s:", tv->name);
+      fprintf (fp, " %-22s", tv->name);
 
       /* Print user-mode time for this process.  */
-      fprintf (fp, "%7.2f (%2.0f%%) usr",
+      fprintf (fp, "%8.3f (%2.0f%%)",
                tv->elapsed.user,
                (total->user == 0 ? 0 : tv->elapsed.user / total->user) * 100);
 
       /* Print system-mode time for this process.  */
-      fprintf (fp, "%7.2f (%2.0f%%) sys",
+      fprintf (fp, "%8.3f (%2.0f%%)",
                tv->elapsed.sys,
                (total->sys == 0 ? 0 : tv->elapsed.sys / total->sys) * 100);
 
       /* Print wall clock time elapsed.  */
-      fprintf (fp, "%7.2f (%2.0f%%) wall",
+      fprintf (fp, "%11.6f (%2.0f%%)",
                tv->elapsed.wall,
                (total->wall == 0 ? 0 : tv->elapsed.wall / total->wall) * 100);
 
@@ -348,8 +351,8 @@
     }
 
   /* Print total time.  */
-  fprintf (fp, " %-22s:", timevars[tv_total].name);
-  fprintf (fp, "%7.2f          ", total->user);
-  fprintf (fp, "%7.2f          ", total->sys);
-  fprintf (fp, "%7.2f\n", total->wall);
+  fprintf (fp, " %-22s", timevars[tv_total].name);
+  fprintf (fp, "%8.3f      ", total->user);
+  fprintf (fp, "%8.3f      ", total->sys);
+  fprintf (fp, "%11.6f\n", total->wall);
 }