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

Reply via email to