[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Any chance gettimeofday() or other millis- or even nanos-precision time
From: |
Volodymyr Gubarkov |
Subject: |
Any chance gettimeofday() or other millis- or even nanos-precision time function stays in the default Gawk distribution? |
Date: |
Thu, 12 Jan 2023 02:22:44 +0200 |
Makesure (https://github.com/xonixx/makesure) is a task/command runner that
I’m developing. It’s sort of similar to the well-known make tool, but
without most of its idiosyncrasies (and with a couple of unique features!).
It may sound surprising, but I wrote it in AWK.
One of the features of this tool is the ability to show timing for executed
goals: https://github.com/xonixx/makesure#options
Initially this was done via system() call to the built-in date command.
But this is slow and on macOS (and, probably *BSD) doesn't provide
ms-precision: https://github.com/xonixx/makesure/issues/51
So I found a solution to rely on gettimeofday() function if Gawk is in use:
https://github.com/xonixx/makesure/issues/57
Overall it appears, there are very few options to get ms-precision timings
via standard *nix utilities, and gawks's gettimeofday() is (was) one of
them:
https://stackoverflow.com/questions/16548528/command-to-get-time-in-milliseconds
(I beg pardon for a long introduction that looks like advertising)
So version GAWK 5.2.1 now shows "gawk: warning: The time extension is
obsolete. Use the timex extension from gawkextlib instead."
Fair enough. I totally get why the decision to deprecate this in favour of
gawkextlib is made (
https://lists.gnu.org/archive/html/bug-gawk/2019-10/msg00038.html).
Obviously, for my tool this excludes the possibility to rely on this
function, since the main point of using AWK for it is portability.
>From the other side, maybe it still does make sense to add gettimeofday()
as a built-in function, the same way as Gawk has a set of Gawk-specific
functions, like the latest mkbool()?
Looking at the source code it doesn’t look like the implementation is
terribly complex to support, but I can be wrong.
>From the other side, given the lack of consistent ms/ns-precision timing
facility in standard *nix utilities, the function is really handy for
precise time-measurement in your AWK code and not only.
Best regards,
Volodymyr
- Any chance gettimeofday() or other millis- or even nanos-precision time function stays in the default Gawk distribution?,
Volodymyr Gubarkov <=