mirror of
https://github.com/Dreeam-qwq/Gale.git
synced 2025-12-19 14:59:29 +00:00
130 lines
6.9 KiB
Diff
130 lines
6.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Martijn Muijsers <martijnmuijsers@live.nl>
|
|
Date: Sat, 24 Dec 2022 20:28:31 +0100
|
|
Subject: [PATCH] Include hardware specs in timings
|
|
|
|
Removed since 1.21
|
|
|
|
License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|
Gale - https://galemc.org
|
|
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
|
|
index 758cb80e64520ff085c4ef5ca8b2ed77d4bc0162..f749516e5d3c22e808638f3a7672aab837571b1a 100644
|
|
--- a/src/main/java/co/aikar/timings/TimingsExport.java
|
|
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
|
|
@@ -35,6 +35,7 @@ import org.bukkit.Material;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
import org.bukkit.configuration.MemorySection;
|
|
import org.bukkit.entity.EntityType;
|
|
+import org.galemc.gale.configuration.GaleGlobalConfiguration;
|
|
import org.galemc.gale.configuration.timingsexport.VanillaServerPropertiesTimingsExport;
|
|
import org.json.simple.JSONObject;
|
|
import org.json.simple.JSONValue;
|
|
@@ -51,6 +52,8 @@ import java.lang.management.RuntimeMXBean;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.InetAddress;
|
|
import java.net.URL;
|
|
+import java.util.Arrays;
|
|
+import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
@@ -135,6 +138,59 @@ public class TimingsExport extends Thread {
|
|
|
|
HardwareAbstractionLayer hardwareInfo = new SystemInfo().getHardware();
|
|
|
|
+ // Gale start - include hardware specs in timings
|
|
+ var processor = hardwareInfo.getProcessor();
|
|
+ var processorIdentifier = processor.getProcessorIdentifier();
|
|
+ var memory = hardwareInfo.getMemory();
|
|
+
|
|
+ Map<String, Object> hardwareSpecsMap = new LinkedHashMap<>();
|
|
+ if (GaleGlobalConfiguration.get().misc.includeInTimingsReport.hardwareSpecs.cpu) {
|
|
+ hardwareSpecsMap.put("cpu", createObject(
|
|
+ pair("logicalprocessorcount", processor.getLogicalProcessorCount()),
|
|
+ pair("physicalprocessorcount", processor.getPhysicalProcessorCount()),
|
|
+ pair("physicalpackagecount", processor.getPhysicalPackageCount()),
|
|
+ pair("contextswitches", processor.getContextSwitches()),
|
|
+ pair("interrupts", processor.getInterrupts()),
|
|
+ pair("maxfreq", processor.getMaxFreq()),
|
|
+ pair("currentfreq", Arrays.toString(processor.getCurrentFreq())),
|
|
+ pair("identifier", createObject(
|
|
+ pair("vendor", String.valueOf(processorIdentifier.getVendor()).trim()),
|
|
+ pair("name", String.valueOf(processorIdentifier.getName()).trim()),
|
|
+ pair("family", String.valueOf(processorIdentifier.getFamily()).trim()),
|
|
+ pair("model", String.valueOf(processorIdentifier.getModel()).trim()),
|
|
+ pair("vendor", String.valueOf(processorIdentifier.getVendor()).trim()),
|
|
+ pair("cpu64bit", processorIdentifier.isCpu64bit()),
|
|
+ pair("vendorfreq", processorIdentifier.getVendorFreq()),
|
|
+ pair("microarchitecture", String.valueOf(processorIdentifier.getMicroarchitecture()).trim())
|
|
+ ))
|
|
+ ));
|
|
+ }
|
|
+ if (GaleGlobalConfiguration.get().misc.includeInTimingsReport.hardwareSpecs.disks) {
|
|
+ hardwareSpecsMap.put("diskstores", toArrayMapper(hardwareInfo.getDiskStores(), disk -> createObject(
|
|
+ pair("name", String.valueOf(disk.getName()).trim()),
|
|
+ pair("model", String.valueOf(disk.getModel()).trim()),
|
|
+ pair("serial", String.valueOf(disk.getSerial()).trim()),
|
|
+ pair("size", disk.getSize())
|
|
+ )));
|
|
+ }
|
|
+ if (GaleGlobalConfiguration.get().misc.includeInTimingsReport.hardwareSpecs.gpus) {
|
|
+ hardwareSpecsMap.put("gpus", toArrayMapper(hardwareInfo.getGraphicsCards(), gpu -> createObject(
|
|
+ pair("name", String.valueOf(gpu.getName()).trim()),
|
|
+ pair("deviceid", String.valueOf(gpu.getDeviceId()).trim()),
|
|
+ pair("vendor", String.valueOf(gpu.getVendor()).trim()),
|
|
+ pair("versioninfo", String.valueOf(gpu.getVersionInfo()).trim()),
|
|
+ pair("vram", gpu.getVRam())
|
|
+ )));
|
|
+ }
|
|
+ if (GaleGlobalConfiguration.get().misc.includeInTimingsReport.hardwareSpecs.memory) {
|
|
+ hardwareSpecsMap.put("memory", createObject(
|
|
+ pair("total", memory.getTotal()),
|
|
+ pair("available", memory.getAvailable()),
|
|
+ pair("pagesize", memory.getPageSize())
|
|
+ ));
|
|
+ }
|
|
+ // Gale end - include hardware specs in timings
|
|
+
|
|
parent.put("system", createObject(
|
|
pair("timingcost", getCost()),
|
|
pair("loadavg", osInfo.getSystemLoadAverage()),
|
|
@@ -152,6 +208,7 @@ public class TimingsExport extends Thread {
|
|
)),
|
|
pair("cpu", runtime.availableProcessors()),
|
|
pair("cpuname", hardwareInfo.getProcessor().getProcessorIdentifier().getName().trim()),
|
|
+ pair("hardwarespecs", hardwareSpecsMap), // Gale - include hardware specs in timings
|
|
pair("runtime", runtimeBean.getUptime()),
|
|
pair("flags", StringUtils.join(runtimeBean.getInputArguments(), " ")),
|
|
pair("gc", toObjectMapper(ManagementFactory.getGarbageCollectorMXBeans(), input -> pair(input.getName(), toArray(input.getCollectionCount(), input.getCollectionTime()))))
|
|
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
|
|
index dbb0f523608a9208e8c656898b18ce1b9505a1e0..2a3cd1baab364126d10a42c8ab59f3da8ca9bdfb 100644
|
|
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
|
|
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
|
|
@@ -32,7 +32,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
|
|
|
|
public IncludeInTimingsReport includeInTimingsReport;
|
|
public class IncludeInTimingsReport extends ConfigurationPart {
|
|
-
|
|
+
|
|
// Gale start - include server.properties in timings
|
|
public ServerProperties serverProperties;
|
|
public class ServerProperties extends ConfigurationPart {
|
|
@@ -52,6 +52,16 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
|
|
}
|
|
// Gale end - include server.properties in timings
|
|
|
|
+ // Gale start - include hardware specs in timings
|
|
+ public HardwareSpecs hardwareSpecs;
|
|
+ public class HardwareSpecs extends ConfigurationPart {
|
|
+ public boolean cpu = true;
|
|
+ public boolean disks = true;
|
|
+ public boolean gpus = true;
|
|
+ public boolean memory = true;
|
|
+ }
|
|
+ // Gale end - include hardware specs in timings
|
|
+
|
|
}
|
|
|
|
}
|