On 2025-01-19 05:55, Devste Devste via Cygwin wrote:
strace -o strace.log dirname -- /some/path/here
Cygwin via Git for Windows 2.47.x
Windows 10
I see:
3249 60966 [main] dirname 31200 time: 1736590460 = time(0x0)
On average it shows between 2000-4000 duration (I'm using Cloudflare's
ntp servers) which seems fishy to me, as this shouldn't be that slow?
Remember this is a C program, running under C++ program strace, running under a
C++ emulator cygwin, where other processes can run, including overhead which
includes its own timing calls, and I don't believe strace takes account of that,
so you are seeing wall clock durations and time counters, in µs I believe.
I see these times, normally ~200us, although I do not know why time is being
called in dirname?
$ grep time ../dirname.strace
218 27334 [main] dirname (2604) time: 1737301093 = time(0x0)
181 29475 [main] dirname (2604) time: 1737301093 = time(0x0)
4352 101621 [main] dirname 50118 time: 1737301093 = time(0x0)
These all appear to be converted from SystemTimePreciseAsFileTime; for accurate
timing, you probably have to use rdtsc instructions directly to capture the
times in a buffer; and calibrate using SystemTimePreciseAsFileTime, and do any
conversions, after the fact.
[Unless you are running a local Windows NTP server to discipline the time, w32tm
service with DC time, or upstream remote NTP servers, are mostly irrelevant as
they randomly bump the system time towards UTC.]
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut
-- Antoine de Saint-Exupéry
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple