diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2020-01-05 16:21:34 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2020-01-05 16:21:34 +0100 |
commit | cb90e382b5b6e177ea902b3909fd1897643ae3cd (patch) | |
tree | e791e416c0810492d9ab2c1ff0da9b08370db733 /src/libexpr/function-trace.cc | |
parent | 0de33cc81b9c33041b7db12a89d4480b9be3347e (diff) |
Hide FunctionCallTrace constructor/destructor
This prevents them from being inlined. On gcc 9, this reduces the
stack size needed for
nix-instantiate '<nixpkgs>' -A texlive.combined.scheme-full --dry-run
from 12.9 MiB to 4.8 MiB.
Diffstat (limited to 'src/libexpr/function-trace.cc')
-rw-r--r-- | src/libexpr/function-trace.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libexpr/function-trace.cc b/src/libexpr/function-trace.cc new file mode 100644 index 000000000..af1486f78 --- /dev/null +++ b/src/libexpr/function-trace.cc @@ -0,0 +1,17 @@ +#include "function-trace.hh" + +namespace nix { + +FunctionCallTrace::FunctionCallTrace(const Pos & pos) : pos(pos) { + auto duration = std::chrono::high_resolution_clock::now().time_since_epoch(); + auto ns = std::chrono::duration_cast<std::chrono::nanoseconds>(duration); + printMsg(lvlInfo, "function-trace entered %1% at %2%", pos, ns.count()); +} + +FunctionCallTrace::~FunctionCallTrace() { + auto duration = std::chrono::high_resolution_clock::now().time_since_epoch(); + auto ns = std::chrono::duration_cast<std::chrono::nanoseconds>(duration); + printMsg(lvlInfo, "function-trace exited %1% at %2%", pos, ns.count()); +} + +} |