mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
feat: add cumulativeCPUUsage to AppMetrics and CPUUsage (#41819)
This allows apps to measure their CPU usage over any given period without worrying about other calls affecting the output, as they would with `percentCPUUsage`.
This commit is contained in:
@@ -1270,10 +1270,17 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics(v8::Isolate* isolate) {
|
||||
auto pid_dict = gin_helper::Dictionary::CreateEmpty(isolate);
|
||||
auto cpu_dict = gin_helper::Dictionary::CreateEmpty(isolate);
|
||||
|
||||
double usage =
|
||||
process_metric.second->metrics->GetPlatformIndependentCPUUsage()
|
||||
.value_or(0);
|
||||
cpu_dict.Set("percentCPUUsage", usage / processor_count);
|
||||
// Default usage percentage to 0 for compatibility
|
||||
double usagePercent = 0;
|
||||
if (auto usage = process_metric.second->metrics->GetCumulativeCPUUsage();
|
||||
usage.has_value()) {
|
||||
cpu_dict.Set("cumulativeCPUUsage", usage->InSecondsF());
|
||||
usagePercent =
|
||||
process_metric.second->metrics->GetPlatformIndependentCPUUsage(
|
||||
*usage);
|
||||
}
|
||||
|
||||
cpu_dict.Set("percentCPUUsage", usagePercent / processor_count);
|
||||
|
||||
#if !BUILDFLAG(IS_WIN)
|
||||
cpu_dict.Set("idleWakeupsPerSecond",
|
||||
|
||||
Reference in New Issue
Block a user