From 34d3475790b2ab58121b3670855ecb3d6b702169 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 19 Jan 2021 09:58:06 +0800 Subject: [PATCH] Multi-thread assets checking, saving 500ms here. --- .../minecraft/assets/MinecraftAssetsProvider.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java index 7b1ff144..cbb17f95 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java @@ -35,6 +35,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import com.google.common.base.Stopwatch; import com.google.gson.Gson; import org.gradle.api.GradleException; import org.gradle.api.Project; @@ -91,9 +92,11 @@ public class MinecraftAssetsProvider { index = new Gson().fromJson(fileReader, AssetIndex.class); } + Stopwatch stopwatch = Stopwatch.createStarted(); + Map parent = index.getFileMap(); - for (Map.Entry entry : parent.entrySet()) { + parent.entrySet().parallelStream().forEach(entry -> { AssetObject object = entry.getValue(); String sha1 = object.getHash(); String filename = "objects" + File.separator + sha1.substring(0, 2) + File.separator + sha1; @@ -140,7 +143,9 @@ public class MinecraftAssetsProvider { }); } } - } + }); + + project.getLogger().info("Took " + stopwatch.stop() + " to iterate " + parent.size() + " asset index."); //Wait for the assets to all download executor.shutdown();