forked from lix-project/lix
Add temporary stats
This commit is contained in:
parent
24c6806994
commit
30964103dc
|
@ -13,6 +13,9 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
|
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/resource.h>
|
||||||
|
|
||||||
#if HAVE_BOEHMGC
|
#if HAVE_BOEHMGC
|
||||||
|
|
||||||
#include <gc/gc.h>
|
#include <gc/gc.h>
|
||||||
|
@ -574,10 +577,19 @@ inline Value * EvalState::lookupVar(Env * env, const ExprVar & var, bool noEval)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::atomic<uint64_t> nrValuesFreed{0};
|
||||||
|
|
||||||
|
void finalizeValue(void * obj, void * data)
|
||||||
|
{
|
||||||
|
nrValuesFreed++;
|
||||||
|
}
|
||||||
|
|
||||||
Value * EvalState::allocValue()
|
Value * EvalState::allocValue()
|
||||||
{
|
{
|
||||||
nrValues++;
|
nrValues++;
|
||||||
return (Value *) allocBytes(sizeof(Value));
|
auto v = (Value *) allocBytes(sizeof(Value));
|
||||||
|
//GC_register_finalizer_no_order(v, finalizeValue, nullptr, nullptr, nullptr);
|
||||||
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1707,6 +1719,20 @@ bool EvalState::eqValues(Value & v1, Value & v2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EvalState::printStats2()
|
||||||
|
{
|
||||||
|
struct rusage ru;
|
||||||
|
getrusage(RUSAGE_SELF, &ru);
|
||||||
|
|
||||||
|
GC_prof_stats_s gc;
|
||||||
|
GC_get_prof_stats(&gc, sizeof(gc));
|
||||||
|
|
||||||
|
printError("STATS %d %d %d %d %d %d",
|
||||||
|
nrValues, nrValuesFreed.load(), nrValues - nrValuesFreed,
|
||||||
|
ru.ru_maxrss,
|
||||||
|
gc.heapsize_full, gc.free_bytes_full);
|
||||||
|
}
|
||||||
|
|
||||||
void EvalState::printStats()
|
void EvalState::printStats()
|
||||||
{
|
{
|
||||||
bool showStats = getEnv("NIX_SHOW_STATS", "0") != "0";
|
bool showStats = getEnv("NIX_SHOW_STATS", "0") != "0";
|
||||||
|
|
|
@ -276,6 +276,7 @@ public:
|
||||||
|
|
||||||
/* Print statistics. */
|
/* Print statistics. */
|
||||||
void printStats();
|
void printStats();
|
||||||
|
void printStats2();
|
||||||
|
|
||||||
void realiseContext(const PathSet & context);
|
void realiseContext(const PathSet & context);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue