Fix CPU Algorithm
This commit is contained in:
17
lib/data/model/cpu_2_status.dart
Normal file
17
lib/data/model/cpu_2_status.dart
Normal file
@@ -0,0 +1,17 @@
|
||||
import 'package:toolbox/data/model/cpu_status.dart';
|
||||
|
||||
class Cpu2Status {
|
||||
List<CpuStatus> pre;
|
||||
List<CpuStatus> now;
|
||||
Cpu2Status(this.pre, this.now);
|
||||
|
||||
double usedPercent({int coreIdx = 0}) {
|
||||
final used = (now[coreIdx].idle - pre[coreIdx].idle) /
|
||||
(now[coreIdx].total - pre[coreIdx].total);
|
||||
return used.isNaN ? 0 : used;
|
||||
}
|
||||
|
||||
Cpu2Status update(List<CpuStatus> newStatus) {
|
||||
return Cpu2Status(now, newStatus);
|
||||
}
|
||||
}
|
||||
@@ -15,13 +15,13 @@ class CpuStatus {
|
||||
}
|
||||
*/
|
||||
late String id;
|
||||
late double user;
|
||||
late double sys;
|
||||
late double nice;
|
||||
late double idle;
|
||||
late double iowait;
|
||||
late double irq;
|
||||
late double softirq;
|
||||
late int user;
|
||||
late int sys;
|
||||
late int nice;
|
||||
late int idle;
|
||||
late int iowait;
|
||||
late int irq;
|
||||
late int softirq;
|
||||
|
||||
CpuStatus(
|
||||
this.id,
|
||||
@@ -56,8 +56,5 @@ class CpuStatus {
|
||||
return data;
|
||||
}
|
||||
|
||||
double get calculateUsedPercent {
|
||||
final used = idle / (user + sys + nice + iowait + irq + softirq + idle);
|
||||
return used.isNaN ? 0 : used;
|
||||
}
|
||||
int get total => user + sys + nice + idle + iowait + irq + softirq;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:toolbox/data/model/cpu_percent.dart';
|
||||
import 'package:toolbox/data/model/cpu_2_status.dart';
|
||||
import 'package:toolbox/data/model/disk_info.dart';
|
||||
import 'package:toolbox/data/model/tcp_status.dart';
|
||||
|
||||
@@ -28,7 +28,7 @@ class ServerStatus {
|
||||
}
|
||||
*/
|
||||
|
||||
List<CpuStatus>? cpuPercent;
|
||||
Cpu2Status? cpu2Status;
|
||||
List<int?>? memList;
|
||||
String? sysVer;
|
||||
String? uptime;
|
||||
@@ -36,59 +36,10 @@ class ServerStatus {
|
||||
TcpStatus? tcp;
|
||||
|
||||
ServerStatus(
|
||||
{this.cpuPercent,
|
||||
{this.cpu2Status,
|
||||
this.memList,
|
||||
this.sysVer,
|
||||
this.uptime,
|
||||
this.disk,
|
||||
this.tcp});
|
||||
ServerStatus.fromJson(Map<String, dynamic> json) {
|
||||
cpuPercent = [];
|
||||
for (var item in json["cpuPercent"]) {
|
||||
cpuPercent!.add(CpuStatus.fromJson(item));
|
||||
}
|
||||
if (json["memList"] != null) {
|
||||
final v = json["memList"];
|
||||
final arr0 = <int>[];
|
||||
v.forEach((v) {
|
||||
arr0.add(v.toInt());
|
||||
});
|
||||
memList = arr0;
|
||||
}
|
||||
sysVer = json["sysVer"]?.toString();
|
||||
uptime = json["uptime"]?.toString();
|
||||
if (json["disk"] != null) {
|
||||
final v = json["disk"];
|
||||
final arr0 = <DiskInfo>[];
|
||||
v.forEach((v) {
|
||||
arr0.add(DiskInfo.fromJson(v));
|
||||
});
|
||||
disk = arr0;
|
||||
}
|
||||
tcp = TcpStatus.fromJson(json['tcp']);
|
||||
}
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data["cpuPercent"] = cpuPercent;
|
||||
if (memList != null) {
|
||||
final v = memList;
|
||||
final arr0 = [];
|
||||
for (var v in v!) {
|
||||
arr0.add(v);
|
||||
}
|
||||
data["memList"] = arr0;
|
||||
}
|
||||
data["sysVer"] = sysVer;
|
||||
data["uptime"] = uptime;
|
||||
if (disk != null) {
|
||||
final v = disk;
|
||||
final arr0 = [];
|
||||
for (var v in v!) {
|
||||
arr0.add(v!.toJson());
|
||||
}
|
||||
data["disk"] = arr0;
|
||||
}
|
||||
data['tcp'] = tcp;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user