mirror of
https://github.com/aristocratos/btop.git
synced 2024-05-16 02:13:46 +12:00
Merge pull request #618 from nobounce/aggregate-child-processes
Add option to accumulate a child's resources in parent in tree-view
This commit is contained in:
commit
d16adc9fd0
|
@ -107,6 +107,8 @@ namespace Config {
|
|||
|
||||
{"proc_filter_kernel", "#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop)."},
|
||||
|
||||
{"proc_aggregate", "#* In tree-view, always accumulate child process resources in the parent process."},
|
||||
|
||||
{"cpu_graph_upper", "#* Sets the CPU stat shown in upper half of the CPU graph, \"total\" is always available.\n"
|
||||
"#* Select from a list of detected attributes from the options menu."},
|
||||
|
||||
|
@ -268,6 +270,7 @@ namespace Config {
|
|||
{"lowcolor", false},
|
||||
{"show_detailed", false},
|
||||
{"proc_filtering", false},
|
||||
{"proc_aggregate", false},
|
||||
};
|
||||
unordered_flat_map<std::string_view, bool> boolsTmp;
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ tab-size = 4
|
|||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <ranges>
|
||||
#include <string>
|
||||
|
||||
#include "btop_draw.hpp"
|
||||
#include "btop_config.hpp"
|
||||
|
@ -1529,7 +1530,16 @@ namespace Proc {
|
|||
else mem_str.resize((mem_p < 10 or mem_p >= 100 ? 3 : 4));
|
||||
mem_str += '%';
|
||||
}
|
||||
out += (thread_size > 0 ? t_color + rjust(to_string(min(p.threads, (size_t)9999)), thread_size) + ' ' + end : "" )
|
||||
|
||||
// Shorten process thread representation when larger than 5 digits: 10000 -> 10K ...
|
||||
std::string proc_threads_string;
|
||||
if (p.threads > 9999) {
|
||||
proc_threads_string = std::to_string(p.threads / 1000) + 'K';
|
||||
} else {
|
||||
proc_threads_string = std::to_string(p.threads);
|
||||
}
|
||||
|
||||
out += (thread_size > 0 ? t_color + rjust(proc_threads_string, thread_size) + ' ' + end : "" )
|
||||
+ g_color + ljust((cmp_greater(p.user.size(), user_size) ? p.user.substr(0, user_size - 1) + '+' : p.user), user_size) + ' '
|
||||
+ m_color + rjust(mem_str, 5) + end + ' '
|
||||
+ (is_selected ? "" : Theme::c("inactive_fg")) + (show_graphs ? graph_bg * 5: "")
|
||||
|
|
|
@ -589,6 +589,11 @@ namespace Menu {
|
|||
"Set true to show processes grouped by",
|
||||
"parents with lines drawn between parent",
|
||||
"and child process."},
|
||||
{"proc_aggregate",
|
||||
"Aggregate child's resources in parent.",
|
||||
"",
|
||||
"In tree-view, include all child resources",
|
||||
"with the parent even while expanded."},
|
||||
{"proc_colors",
|
||||
"Enable colors in process view.",
|
||||
"",
|
||||
|
|
|
@ -18,6 +18,7 @@ tab-size = 4
|
|||
|
||||
#include <ranges>
|
||||
|
||||
#include "btop_config.hpp"
|
||||
#include "btop_shared.hpp"
|
||||
#include "btop_tools.hpp"
|
||||
|
||||
|
@ -156,6 +157,12 @@ namespace Proc {
|
|||
filter_found++;
|
||||
p.filtered = true;
|
||||
}
|
||||
else if (Config::getB("proc_aggregate")) {
|
||||
cur_proc.cpu_p += p.cpu_p;
|
||||
cur_proc.cpu_c += p.cpu_c;
|
||||
cur_proc.mem += p.mem;
|
||||
cur_proc.threads += p.threads;
|
||||
}
|
||||
}
|
||||
if (collapsed or filtering) {
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue