forked from lix-project/lix
In the profiler output, show function names (if available)
This commit is contained in:
parent
8e74c0bfd1
commit
46ffcce0c3
|
@ -788,7 +788,7 @@ void EvalState::callFunction(Value & fun, Value & arg, Value & v)
|
||||||
}
|
}
|
||||||
|
|
||||||
nrFunctionCalls++;
|
nrFunctionCalls++;
|
||||||
if (countCalls) functionCalls[fun.lambda.fun->pos]++;
|
if (countCalls) functionCalls[fun.lambda.fun]++;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fun.lambda.fun->body->eval(*this, env2, v);
|
fun.lambda.fun->body->eval(*this, env2, v);
|
||||||
|
@ -1283,23 +1283,23 @@ void EvalState::printStats()
|
||||||
|
|
||||||
printMsg(v, format("calls to %1% primops:") % primOpCalls.size());
|
printMsg(v, format("calls to %1% primops:") % primOpCalls.size());
|
||||||
typedef std::multimap<unsigned int, Symbol> PrimOpCalls_;
|
typedef std::multimap<unsigned int, Symbol> PrimOpCalls_;
|
||||||
std::multimap<unsigned int, Symbol> primOpCalls_;
|
PrimOpCalls_ primOpCalls_;
|
||||||
foreach (PrimOpCalls::iterator, i, primOpCalls)
|
foreach (PrimOpCalls::iterator, i, primOpCalls)
|
||||||
primOpCalls_.insert(std::pair<unsigned int, Symbol>(i->second, i->first));
|
primOpCalls_.insert(std::pair<unsigned int, Symbol>(i->second, i->first));
|
||||||
foreach_reverse (PrimOpCalls_::reverse_iterator, i, primOpCalls_)
|
foreach_reverse (PrimOpCalls_::reverse_iterator, i, primOpCalls_)
|
||||||
printMsg(v, format("%1$10d %2%") % i->first % i->second);
|
printMsg(v, format("%1$10d %2%") % i->first % i->second);
|
||||||
|
|
||||||
printMsg(v, format("calls to %1% functions:") % functionCalls.size());
|
printMsg(v, format("calls to %1% functions:") % functionCalls.size());
|
||||||
typedef std::multimap<unsigned int, Pos> FunctionCalls_;
|
typedef std::multimap<unsigned int, ExprLambda *> FunctionCalls_;
|
||||||
std::multimap<unsigned int, Pos> functionCalls_;
|
FunctionCalls_ functionCalls_;
|
||||||
foreach (FunctionCalls::iterator, i, functionCalls)
|
foreach (FunctionCalls::iterator, i, functionCalls)
|
||||||
functionCalls_.insert(std::pair<unsigned int, Pos>(i->second, i->first));
|
functionCalls_.insert(std::pair<unsigned int, ExprLambda *>(i->second, i->first));
|
||||||
foreach_reverse (FunctionCalls_::reverse_iterator, i, functionCalls_)
|
foreach_reverse (FunctionCalls_::reverse_iterator, i, functionCalls_)
|
||||||
printMsg(v, format("%1$10d %2%") % i->first % i->second);
|
printMsg(v, format("%1$10d %2%") % i->first % i->second->showNamePos());
|
||||||
|
|
||||||
printMsg(v, format("evaluations of %1% attributes:") % attrSelects.size());
|
printMsg(v, format("evaluations of %1% attributes:") % attrSelects.size());
|
||||||
typedef std::multimap<unsigned int, Pos> AttrSelects_;
|
typedef std::multimap<unsigned int, Pos> AttrSelects_;
|
||||||
std::multimap<unsigned int, Pos> attrSelects_;
|
AttrSelects_ attrSelects_;
|
||||||
foreach (AttrSelects::iterator, i, attrSelects)
|
foreach (AttrSelects::iterator, i, attrSelects)
|
||||||
attrSelects_.insert(std::pair<unsigned int, Pos>(i->second, i->first));
|
attrSelects_.insert(std::pair<unsigned int, Pos>(i->second, i->first));
|
||||||
foreach_reverse (AttrSelects_::reverse_iterator, i, attrSelects_)
|
foreach_reverse (AttrSelects_::reverse_iterator, i, attrSelects_)
|
||||||
|
|
|
@ -260,7 +260,7 @@ private:
|
||||||
typedef std::map<Symbol, unsigned int> PrimOpCalls;
|
typedef std::map<Symbol, unsigned int> PrimOpCalls;
|
||||||
PrimOpCalls primOpCalls;
|
PrimOpCalls primOpCalls;
|
||||||
|
|
||||||
typedef std::map<Pos, unsigned int> FunctionCalls;
|
typedef std::map<ExprLambda *, unsigned int> FunctionCalls;
|
||||||
FunctionCalls functionCalls;
|
FunctionCalls functionCalls;
|
||||||
|
|
||||||
typedef std::map<Pos, unsigned int> AttrSelects;
|
typedef std::map<Pos, unsigned int> AttrSelects;
|
||||||
|
|
Loading…
Reference in a new issue