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:
@@ -274,8 +274,15 @@ v8::Local<v8::Value> ElectronBindings::GetCPUUsage(
|
||||
v8::Isolate* isolate) {
|
||||
auto dict = gin_helper::Dictionary::CreateEmpty(isolate);
|
||||
int processor_count = base::SysInfo::NumberOfProcessors();
|
||||
double usage = metrics->GetPlatformIndependentCPUUsage().value_or(0);
|
||||
dict.Set("percentCPUUsage", usage / processor_count);
|
||||
|
||||
// Default usage percentage to 0 for compatibility
|
||||
double usagePercent = 0;
|
||||
if (auto usage = metrics->GetCumulativeCPUUsage(); usage.has_value()) {
|
||||
dict.Set("cumulativeCPUUsage", usage->InSecondsF());
|
||||
usagePercent = metrics->GetPlatformIndependentCPUUsage(*usage);
|
||||
}
|
||||
|
||||
dict.Set("percentCPUUsage", usagePercent / processor_count);
|
||||
|
||||
// NB: This will throw NOTIMPLEMENTED() on Windows
|
||||
// For backwards compatibility, we'll return 0
|
||||
|
||||
Reference in New Issue
Block a user