diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-05-08T10·00+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-05-08T10·00+0000 |
commit | 310e605995dc104bee29d330ac135e3e2bb82f97 (patch) | |
tree | f020fe0f638f1c5f820fdfcebcadabc71fb07b3b | |
parent | 0832956089516d32371060c98df4f8d0cbff2b0f (diff) |
* Show evaluation stats when NIX_SHOW_STATS=1.
-rw-r--r-- | src/libexpr/eval.cc | 5 | ||||
-rw-r--r-- | src/libutil/aterm-map.cc | 36 | ||||
-rw-r--r-- | src/libutil/aterm-map.hh | 4 |
3 files changed, 30 insertions, 15 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 38f198fb86ca..ee17c996c6f9 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -527,9 +527,12 @@ extern "C" { void printEvalStats(EvalState & state) { - printMsg(lvlInfo, + bool showStats = getEnv("NIX_SHOW_STATS", "0") != "0"; + printMsg(showStats ? lvlInfo : lvlDebug, format("evaluated %1% expressions, %2% cache hits, %3%%% efficiency, used %4% ATerm bytes") % state.nrEvaluated % state.nrCached % ((float) state.nrCached / (float) state.nrEvaluated * 100) % AT_calcAllocatedSize()); + if (showStats) + printATermMapStats(); } diff --git a/src/libutil/aterm-map.cc b/src/libutil/aterm-map.cc index e0cfefa2d5f4..60092382a2f3 100644 --- a/src/libutil/aterm-map.cc +++ b/src/libutil/aterm-map.cc @@ -213,6 +213,27 @@ unsigned int ATermMap::size() } +#include <iostream> + +void printATermMapStats() +{ + cout << "RESIZES: " << nrResizes << " " + << sizeTotalAlloc << " " + << sizeCurAlloc << " " + << sizeMaxAlloc << endl; + + cout << "SET: " + << nrItemsSet << " " + << nrSetProbes << " " + << (double) nrSetProbes / nrItemsSet << endl; + + cout << "GET: " + << nrItemsGet << " " + << nrGetProbes << " " + << (double) nrGetProbes / nrItemsGet << endl; +} + + #if 0 int main(int argc, char * * argv) { @@ -294,19 +315,6 @@ int main(int argc, char * * argv) } - cout << "RESIZES: " << nrResizes << " " - << sizeTotalAlloc << " " - << sizeCurAlloc << " " - << sizeMaxAlloc << endl; - - cout << "SET: " - << nrItemsSet << " " - << nrSetProbes << " " - << (double) nrSetProbes / nrItemsSet << endl; - - cout << "GET: " - << nrItemsGet << " " - << nrGetProbes << " " - << (double) nrGetProbes / nrItemsGet << endl; + printATermMapStats(); } #endif diff --git a/src/libutil/aterm-map.hh b/src/libutil/aterm-map.hh index d7aed2ca21ac..6d13d7f9e0d1 100644 --- a/src/libutil/aterm-map.hh +++ b/src/libutil/aterm-map.hh @@ -111,4 +111,8 @@ private: }; +/* Hack. */ +void printATermMapStats(); + + #endif /* !__ATERM_MAP_H */ |