[PATCH] D82967: [analyzer][tests] Measure peak memory consumption for every project

Valeriy Savchenko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 1 23:15:06 PDT 2020


vsavchenko marked 2 inline comments as done.
vsavchenko added inline comments.


================
Comment at: clang/utils/analyzer/SATestUtils.py:113
+                peak_mem = max(peak_mem, get_memory(process))
+                time.sleep(.5)
+
----------------
NoQ wrote:
> Do i understand correctly that this basically adds roughly 0.25 second delay to every invocation of the analyzer? If so, that may add up to a lot of seconds for a project with many small translation units which can potentially screw our wall clock measurements. I guess the ideal solution would be some sort of "select" that waits on process termination with timeout, or we could simply decrease the sleep interval and hope it won't consume too much cpu time.
Not really, the process starts when we call `Popen` and instead of waiting for it to finish like `check_call` does, we poll the memory.

Another point (even though it is not very useful information in the context of my previous statement) is that this happens on every `scan-build` invocation and not for every `clang` invocation.


================
Comment at: clang/utils/analyzer/requirements.txt:1-2
+humanize
+psutil
----------------
NoQ wrote:
> Dunno, should we bother putting every utility into its own directory with its own requirements? Like, `exploded-graph-rewriter.py` certainly has different requirements.
Maybe we should simply put it here as well?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82967/new/

https://reviews.llvm.org/D82967





More information about the cfe-commits mailing list