From: Paul Eggert Date: Sat, 19 Jan 2019 22:38:52 +0000 (-0800) Subject: pdumper-stats now returns s, not ms X-Git-Tag: emacs-27.0.90~3778 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3e1255172334f3c0645d37eb92c05a628fa3d548;p=emacs.git pdumper-stats now returns s, not ms * doc/lispref/internals.texi (pdumper-stats): * src/pdumper.c (pdumper_load): Return seconds, not milliseconds. Minimize rounding errors in the usual case. --- diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 437657f2438..06ff9f70bf9 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi @@ -232,7 +232,7 @@ time it took to restore the Emacs state. The value is an alist @w{@code{((dumped-with-pdumper . t) (load-time . @var{time}) (dump-file-name . @var{file}))}}, where @var{file} is the name of the dump file, and @var{time} is the -time in milliseconds it took to restore the state from the dump file. +time in seconds it took to restore the state from the dump file. If the current session was not restored from a portable dump file, the value is nil. @end defun diff --git a/src/pdumper.c b/src/pdumper.c index 19a21329b1e..4bbeabb828e 100644 --- a/src/pdumper.c +++ b/src/pdumper.c @@ -5545,9 +5545,10 @@ pdumper_load (const char *dump_filename) struct timespec load_timespec = timespec_sub (current_timespec (), start_time); - dump_private.load_time = - (double) load_timespec.tv_sec * 1000.0 - + (double) load_timespec.tv_nsec * 0.000001; + ALLOW_IMPLICIT_CONVERSION; + double s = load_timespec.tv_sec, ns = load_timespec.tv_nsec; + DISALLOW_IMPLICIT_CONVERSION; + dump_private.load_time = (s * 1e9 + ns) / 1e9; dump_private.dump_filename = dump_filename_copy; dump_filename_copy = NULL; @@ -5569,7 +5570,7 @@ the return value is an alist of the form: ((dumped-with-pdumper . t) (load-time . TIME) (dump-file-name . FILE)) -where TIME is the time in milliseconds it took to restore Emacs state +where TIME is the time in seconds it took to restore Emacs state from the dump file, and FILE is the name of the dump file. Value is nil if this session was not started using a portable dump file.*/) (void)