<div dir="ltr"><div><br></div><div>I've done some profiling of LO build and one of the common events is the spawning of bash and mv (on cygwin).<br></div><div>Another performance investigation (deps and pch) took me to filter-showIncludes.awk where I found the source of the thousands of mv spawns.</div><div><br></div><div><div>    close(tempfile)</div><div>    movecmd = "mv " tempfile " " depfile</div><div>    ret = system(movecmd)</div></div><div><br></div><div>It seems that filter-showIncludes.awk is writing the dependency file .d in a .tmp file first, then it's renaming it to .d.</div><div>Considering that the input is piped from stdin and .d either doesn't exist or will be overwritten (and is never an input,) the wisdom of writing to a temp file and then moving is lost on me.</div><div><br></div><div>A complete build generates close to 9000 .d files in CxxObject alone. Spawning processes and doing file I/O in the several thousands are bound to have a toll.</div><div>I've patched filter-showIncludes.awk to write directly to .d and saw no ill effects.</div><div><br></div><div>Anyone see a reason not to write directly into .d?</div><div>If no, I'll submit a patch.</div></div>