aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/function-trace.hh
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-01-05 16:21:34 +0100
committerEelco Dolstra <edolstra@gmail.com>2020-01-05 16:21:34 +0100
commitcb90e382b5b6e177ea902b3909fd1897643ae3cd (patch)
treee791e416c0810492d9ab2c1ff0da9b08370db733 /src/libexpr/function-trace.hh
parent0de33cc81b9c33041b7db12a89d4480b9be3347e (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.hh')
-rw-r--r--src/libexpr/function-trace.hh14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/libexpr/function-trace.hh b/src/libexpr/function-trace.hh
index 2c39b7430..472f2045e 100644
--- a/src/libexpr/function-trace.hh
+++ b/src/libexpr/function-trace.hh
@@ -9,17 +9,7 @@ namespace nix {
struct FunctionCallTrace
{
const Pos & pos;
-
- 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() {
- 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());
- }
+ FunctionCallTrace(const Pos & pos);
+ ~FunctionCallTrace();
};
}