9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-06 15:51:31 +00:00

Use thread-safe ThreadLocalRandom

This commit is contained in:
Dreeam
2023-10-09 21:36:50 -04:00
parent 088b2916b4
commit 6e5e72d5c3
2 changed files with 32 additions and 12 deletions

View File

@@ -55,32 +55,24 @@ index ec6afe51fd204e4c0764850dcc4535f7f8c159ab..9f8c6fa8fdf83ecc1e2582345bcf6bb7
}
diff --git a/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java b/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java
index 36f9d68b70fbd1cd3790a9bb5a729a11da8cbf83..98698c04d1cfbaccff67a17045b219fba65626d6 100644
index 36f9d68b70fbd1cd3790a9bb5a729a11da8cbf83..458ef9e6f68f89f34a9e1bd74b50d52eeb93342e 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/RandomSupport.java
@@ -5,6 +5,7 @@ import com.google.common.base.Charsets;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import com.google.common.primitives.Longs;
+import java.util.SplittableRandom;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.atomic.AtomicLong;
public final class RandomSupport {
@@ -12,6 +13,7 @@ public final class RandomSupport {
public static final long SILVER_RATIO_64 = 7640891576956012809L;
private static final HashFunction MD5_128 = Hashing.md5();
private static final AtomicLong SEED_UNIQUIFIER = new AtomicLong(8682522807148012L);
+ private static final SplittableRandom random = new SplittableRandom(); // Leaf - Generate random seed faster
@VisibleForTesting
public static long mixStafford13(long seed) {
@@ -43,6 +45,12 @@ public final class RandomSupport {
@@ -43,6 +44,12 @@ public final class RandomSupport {
}) ^ System.nanoTime();
}
+ // Leaf start - Generate random seed faster
+ public static long generateFasterSeed() {
+ return SEED_UNIQUIFIER.updateAndGet((seedUniquifier) -> seedUniquifier * 1181783497276652981L)^ random.nextLong();
+ return SEED_UNIQUIFIER.updateAndGet((seedUniquifier) -> seedUniquifier * 1181783497276652981L)^ ThreadLocalRandom.current().nextLong();
+ }
+ // Leaf end
+

View File

@@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
Date: Mon, 9 Oct 2023 21:33:08 -0400
Subject: [PATCH] Faster Random for xaeroMapServerID generation
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
index 245bf3d0c17e91c24ff28e53f0ee73b66b4d5e50..c9e57d0b97797aef9008cbdeeb4ab2a8bf51ea59 100644
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
@@ -1,7 +1,7 @@
package org.dreeam.leaf;
import com.google.common.collect.ImmutableMap;
-import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.server.MinecraftServer;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
@@ -206,7 +206,7 @@ public class LeafConfig {
public static boolean jadeProtocol = false;
public static boolean appleskinProtocol = false;
public static boolean xaeroMapProtocol = false;
- public static int xaeroMapServerID = new Random().nextInt();
+ public static int xaeroMapServerID = ThreadLocalRandom.current().nextInt(); // Leaf - Faster Random
private static void network() {
jadeProtocol = getBoolean("network.protocol.jade-protocol", jadeProtocol);
appleskinProtocol = getBoolean("network.protocol.appleskin-protocol", appleskinProtocol);