January 21, 2019
https://issues.dlang.org/show_bug.cgi?id=19601

          Issue ID: 19601
           Summary: Running -profile=gc when no gc is logged leaves old
                    misleading file contents
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: john.burton@jbmail.com

Rather minor issue but might be easy to fix if it's agreed it's a bug and worth the effort.

Using the following option on dmd :-

  -profile=gc

When the resulting executable file is run it logs GC operations to the file profilegc.log However if no GC operations occurs during the run, then any previous contents of that file is left unchanged which is misleading as the file does not accurately reflect the result of the profiling (which should be an empty file)

This caused me a small amount of confusion when I was trying to eliminate the gc operations from some inner loop code and was trying to understand the results once I'd managed to eliminate all the GC operations.

I would expect that it you've requested a gc profile and there is nothing for the log that an empty file is produces or some indication that there is no GC (or even the file is removed).

--