dashboard: optimise systemusage

Ref same way as cava
This commit is contained in:
2 * r + 2 * t 2025-06-28 22:35:49 +10:00
parent c1872c2d77
commit 40b43a49ab
3 changed files with 13 additions and 9 deletions

View file

@ -11,6 +11,10 @@ RowLayout {
spacing: Appearance.spacing.large * 3 spacing: Appearance.spacing.large * 3
Ref {
service: SystemUsage
}
Resource { Resource {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
Layout.topMargin: root.padding Layout.topMargin: root.padding

View file

@ -2,7 +2,6 @@ import "root:/widgets"
import "root:/services" import "root:/services"
import "root:/config" import "root:/config"
import QtQuick import QtQuick
import QtQuick.Controls
Row { Row {
id: root id: root
@ -13,6 +12,10 @@ Row {
padding: Appearance.padding.large padding: Appearance.padding.large
spacing: Appearance.spacing.normal spacing: Appearance.spacing.normal
Ref {
service: SystemUsage
}
Resource { Resource {
icon: "memory" icon: "memory"
value: SystemUsage.cpuPerc value: SystemUsage.cpuPerc

View file

@ -22,6 +22,8 @@ Singleton {
property real lastCpuIdle property real lastCpuIdle
property real lastCpuTotal property real lastCpuTotal
property int refCount
function formatKib(kib: real): var { function formatKib(kib: real): var {
const mib = 1024; const mib = 1024;
const gib = 1024 ** 2; const gib = 1024 ** 2;
@ -49,9 +51,10 @@ Singleton {
} }
Timer { Timer {
running: true running: root.refCount
interval: 3000 interval: 3000
repeat: true repeat: true
triggeredOnStart: true
onTriggered: { onTriggered: {
stat.reload(); stat.reload();
meminfo.reload(); meminfo.reload();
@ -96,7 +99,6 @@ Singleton {
Process { Process {
id: storage id: storage
running: true
command: ["sh", "-c", "df | grep '^/dev/' | awk '{print $1, $3, $4}'"] command: ["sh", "-c", "df | grep '^/dev/' | awk '{print $1, $3, $4}'"]
stdout: StdioCollector { stdout: StdioCollector {
onStreamFinished: { onStreamFinished: {
@ -142,17 +144,13 @@ Singleton {
running: true running: true
command: ["sh", "-c", "if ls /sys/class/drm/card*/device/gpu_busy_percent 2>/dev/null | grep -q .; then echo GENERIC; elif command -v nvidia-smi >/dev/null; then echo NVIDIA; else echo NONE; fi"] command: ["sh", "-c", "if ls /sys/class/drm/card*/device/gpu_busy_percent 2>/dev/null | grep -q .; then echo GENERIC; elif command -v nvidia-smi >/dev/null; then echo NVIDIA; else echo NONE; fi"]
stdout: StdioCollector { stdout: StdioCollector {
onStreamFinished: { onStreamFinished: root.gpuType = text.trim()
root.gpuType = text.trim();
gpuUsage.running = true;
}
} }
} }
Process { Process {
id: gpuUsage id: gpuUsage
running: true
command: root.gpuType === "GENERIC" ? ["sh", "-c", "cat /sys/class/drm/card*/device/gpu_busy_percent"] : root.gpuType === "NVIDIA" ? ["nvidia-smi", "--query-gpu=utilization.gpu,temperature.gpu", "--format=csv,noheader,nounits"] : ["echo"] command: root.gpuType === "GENERIC" ? ["sh", "-c", "cat /sys/class/drm/card*/device/gpu_busy_percent"] : root.gpuType === "NVIDIA" ? ["nvidia-smi", "--query-gpu=utilization.gpu,temperature.gpu", "--format=csv,noheader,nounits"] : ["echo"]
stdout: StdioCollector { stdout: StdioCollector {
onStreamFinished: { onStreamFinished: {
@ -175,7 +173,6 @@ Singleton {
Process { Process {
id: sensors id: sensors
running: true
command: ["sensors"] command: ["sensors"]
environment: ({ environment: ({
LANG: "C", LANG: "C",