Skip to content

Commit

Permalink
fix benchmark result
Browse files Browse the repository at this point in the history
  • Loading branch information
alvindimas05 committed Aug 8, 2024
1 parent b4b302b commit 2c9acf0
Show file tree
Hide file tree
Showing 7 changed files with 129 additions and 160 deletions.
6 changes: 6 additions & 0 deletions .idea/laravel-idea-personal.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ dependencies {
compileOnly("io.papermc.paper:paper-api:$minecraftVersion-R0.1-SNAPSHOT")
compileOnly("net.milkbowl.vault:VaultAPI:1.7")

implementation("com.google.code.gson:gson:2.11.0")
implementation("io.netty:netty-all:4.1.111.Final")
implementation("org.apache.directory.studio:org.apache.commons.lang:2.6")
implementation("javax.xml.bind:jaxb-api:2.4.0-b180830.0359")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ private static void help18(CommandSender s) {
s.sendMessage(" ✸ LagAssist TogglePhyisics - Toggles physics events.");
s.sendMessage(" ✸ LagAssist ChunkAnalyse - Find the laggiest chunks");
s.sendMessage(" ✸ LagAssist GetMap - Get a graph of server TPS");
s.sendMessage(" ✸ LagAssist Benchmark - Generates a performance report");
s.sendMessage(" ✸ LagAssist Benchmark - Get bencmarked result of your cpu");
s.sendMessage(" ✸ LagAssist Ping - Shows a ping benchmark");
s.sendMessage(" ✸ LagAssist StatsBar - Get a simple action-bar TPS Meter");
s.sendMessage(" ✸ LagAssist TpChunk - Teleport to a chunk");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,12 @@ public void run() {
cs.sendMessage(" §2✸ §fCPU Name: §e" + cpuname);
cs.sendMessage("");
if (br.getOk()) {
cs.sendMessage(" §2✸ §fCPU Score (SINGLE): §e" + br.getStringifiedSth());
cs.sendMessage(" §2✸ §fCPU Score (MULTI): §e" + br.getStringifiedMth());
cs.sendMessage(" §2✸ §fCPU Score: §e" + br.getStringifiedSth());
cs.sendMessage(" §2✸ §fThread Score: §e" + br.getStringifiedTh());
} else {
cs.sendMessage(" §eBenchmark feature coming soon!");
// cs.sendMessage(" §cThere was an error getting the full benchmark results.");
// cs.sendMessage(" §eBenchmark feature coming soon!");
cs.sendMessage(" §cThere was an error getting the full benchmark results.");
cs.sendMessage(" §cYour CPU might be unsupported.");
}
cs.sendMessage("");
cs.sendMessage(" §2✸ §fDownload Speed: §e" + MIBDL + " Mib/s (" + MBDL + "MB/s)");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ public class BenchResponse {

private int singlethread;
private int multithread;
private int thread;
private boolean ok;

public BenchResponse(int singlethread, int multithread, boolean ok) {
public BenchResponse(int singlethread, int multithread, int thread, boolean ok) {
this.singlethread = singlethread;
this.multithread = multithread;
this.thread = thread;
this.ok = ok;
}

public boolean getOk() {
return ok;
}
Expand Down Expand Up @@ -43,7 +44,15 @@ public String getStringifiedMth() {
return String.valueOf(multithread);
}

public void setSinglethread(int singlethread) {
public String getStringifiedTh() {
if (thread < 0) {
return "Unknown Score";
}
return String.valueOf(thread);
}


public void setSinglethread(int singlethread) {
this.singlethread = singlethread;
}

Expand Down
101 changes: 0 additions & 101 deletions src/main/java/org/alvindimas05/lagassist/minebench/HTTPClient.java

This file was deleted.

153 changes: 103 additions & 50 deletions src/main/java/org/alvindimas05/lagassist/minebench/SpecsGetter.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,42 +8,79 @@
import java.io.UnsupportedEncodingException;
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import com.google.gson.Gson;
import org.alvindimas05.lagassist.utils.Others;

class BenchmarkData {
public List<BenchmarkCPU> data;
public static class BenchmarkCPU {
public String name;
public String cpumark;
public String thread;
}
}

public class SpecsGetter {

private static OperatingSystemMXBean osmx = ManagementFactory.getOperatingSystemMXBean();

private static String getLinuxCPU() {

final String regex = "model name : (.*\\n)";

File fl = new File("/proc/cpuinfo");
if (!fl.exists()) {
return "unknown";
}
if (!fl.canRead()) {
return "unknown";
}
try {
String stg = Others.readInputStreamAsString(new FileInputStream(fl));

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(stg);
matcher.find();

return matcher.group(1).replaceAll("\n", "");

} catch (IOException e) {
e.printStackTrace();
return "unknown";
}

}
// private static String getLinuxCPU() {
//
// final String regex = "model name : (.*\\n)";
//
// File fl = new File("/proc/cpuinfo");
// if (!fl.exists()) {
// return "unknown";
// }
// if (!fl.canRead()) {
// return "unknown";
// }
// try {
// String stg = Others.readInputStreamAsString(new FileInputStream(fl));
//
// final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
// final Matcher matcher = pattern.matcher(stg);
// matcher.find();
//
// return matcher.group(1).replaceAll("\n", "");
//
// } catch (IOException e) {
// e.printStackTrace();
// return "unknown";
// }
//
// }

private static String formatCPU(String cpuname){
return String.join(" ",
Arrays.stream(cpuname
.replaceAll("\\(R\\)", "")
.replaceAll(" CPU", "")
.split(" ")).toList().subList(0, 4));
}

private static String getLinuxCPU(){
Runtime rt = Runtime.getRuntime();
try {
Process proc = rt.exec("lscpu | grep 'Model name' | cut -f 2 -d ':' | awk '{$1=$1}1'");
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));

return formatCPU(reader.readLine());
} catch(IOException e){
return "unknown";
}
}

private static String getWindowsCPU() {
Runtime rt = Runtime.getRuntime();
Expand All @@ -52,8 +89,7 @@ private static String getWindowsCPU() {
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
reader.readLine();
reader.readLine();
return reader.readLine();

return formatCPU(reader.readLine());
} catch (IOException e) {
return "unknown";
}
Expand All @@ -65,24 +101,20 @@ private static String getMacCPU() {
try {
Process proc = rt.exec("sysctl -n machdep.cpu.brand_string");
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
return reader.readLine();

return formatCPU(reader.readLine());
} catch (IOException e) {
return "unknown";
}

}

public static String getCPU(String OS) {
if (OS.equals("windows")) {
return getWindowsCPU();
} else if (OS.equals("linux")) {
return getLinuxCPU();
} else if (OS.equals("mac")) {
return getMacCPU();
} else {
return "unknown";
}
return switch (OS) {
case "windows" -> getWindowsCPU();
case "linux" -> getLinuxCPU();
case "mac" -> getMacCPU();
default -> "unknown";
};
}

public static String getOS() {
Expand Down Expand Up @@ -117,21 +149,42 @@ public static float getSystemLoad() {

public static BenchResponse getBenchmark() {

String cpu = getCPU(getOS());
String cpuname = getCPU(getOS());

if (cpu.equals("unknown")) {
return new BenchResponse(-1, -1, false);
if (cpuname.equals("unknown")) {
return new BenchResponse(-1, -1, -1, false);
}

HTTPClient conn;
try {
conn = new HTTPClient("https://lagassist.rz.al/benchmark/" + URLEncoder.encode(cpu, "UTF-8"));

return conn.getBenchmark();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
URL url = new URL("https://github.com/alvindimas05/LagAssist/releases/latest/download/benchmark-data.json");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.connect();

StringBuilder response = new StringBuilder();
Scanner scanner = new Scanner(conn.getInputStream());
while (scanner.hasNextLine()) {
response.append(scanner.nextLine());
}
scanner.close();

Gson gson = new Gson();
BenchmarkData data = gson.fromJson(response.toString(), BenchmarkData.class);

BenchmarkData.BenchmarkCPU benchmarkCPU = data.data.stream()
.filter(cpu -> cpu.name.contains(cpuname))
.toList().getFirst();

return new BenchResponse(
Integer.parseInt(benchmarkCPU.cpumark.replaceAll(",", "")),
0,
Integer.parseInt(benchmarkCPU.thread.replaceAll(",", "")),
true
);
} catch (Exception e) {
e.printStackTrace();
}
return null;

}

Expand Down

0 comments on commit 2c9acf0

Please sign in to comment.