On 3/18/26 11:22, Zack Weinberg wrote:
[...]

[...]  All of
the executions of "cat" that take significant time are from this
construct

     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
     /* end confdefs.h.  */
     // ... test program here ...
     _ACEOF

which occurs for every test program we need to feed to the compiler.
With both 2.72 and 2.73, there are 1550 executions of "cat" that take
more than a millisecond, but with 2.72 they add up to 2.81 seconds
and with 2.73 they add up to 3.98 seconds.

I don't have a good explanation for this; it seems to me that even
for the longest test programs we have, that construct should never
take more than a few _micro_seconds.  [...]

Since the question is what *changed*, perhaps confdefs.h is a longer file with 2.73?  Are the test programs systematically longer with 2.73?

Overall, the "significant" cat(1) uses add 1.17 seconds across 1550 invocations, for an average increase of 755 _micro_seconds per use.  This is, perhaps, plausible if cat(1) is copying more data in the 2.73 case, maybe.

The difference could be as little as one byte, if that one byte requires transferring an additional I/O block...


-- Jacob


Reply via email to