mirror of
https://github.com/matrix-construct/construct
synced 2024-12-28 00:14:07 +01:00
modules/console: Add ctx prof cmd.
This commit is contained in:
parent
d5ffc6b0de
commit
6e3cf1471f
1 changed files with 47 additions and 0 deletions
|
@ -1281,6 +1281,53 @@ console_cmd__ctx__interrupt(opt &out, const string_view &line)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
console_cmd__ctx__prof(opt &out, const string_view &line)
|
||||
{
|
||||
const params param{line, " ",
|
||||
{
|
||||
"id",
|
||||
}};
|
||||
|
||||
const auto display{[&out]
|
||||
(const ctx::prof::ticker &t)
|
||||
{
|
||||
for_each<ctx::prof::event>([&out, &t]
|
||||
(const auto &event)
|
||||
{
|
||||
out << std::left << std::setw(15) << std::setfill('_') << reflect(event)
|
||||
<< " " << t.event.at(uint8_t(event))
|
||||
<< std::endl;
|
||||
});
|
||||
|
||||
out << std::left << std::setw(15) << std::setfill('_') << "cycles"
|
||||
<< " " << t.cycles
|
||||
<< std::endl;
|
||||
}};
|
||||
|
||||
if(!param["id"])
|
||||
{
|
||||
out << "Profile totals for all contexts:\n"
|
||||
<< std::endl;
|
||||
|
||||
display(ctx::prof::get());
|
||||
return true;
|
||||
}
|
||||
|
||||
for(size_t i(0); i < param.count(); ++i)
|
||||
for(auto *const &ctx : ctx::ctxs)
|
||||
if(id(*ctx) == param.at<uint64_t>(i))
|
||||
{
|
||||
out << "Profile for ctx:" << id(*ctx) << " '" << name(*ctx) << "':\n"
|
||||
<< std::endl;
|
||||
|
||||
display(ctx::prof::get(*ctx));
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
console_cmd__ctx__term(opt &out, const string_view &line)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue