Measure vanilla bootstrap time

This commit is contained in:
embeddedt 2023-02-09 10:44:35 -05:00
parent 611a8e18cb
commit eb99ce47d8
2 changed files with 33 additions and 1 deletions

View File

@ -0,0 +1,31 @@
package org.embeddedt.modernfix.mixin.feature.measure_time;
import com.google.common.base.Stopwatch;
import net.minecraft.util.registry.Bootstrap;
import org.apache.logging.log4j.Logger;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.concurrent.TimeUnit;
@Mixin(Bootstrap.class)
public class BootstrapMixin {
@Shadow @Final private static Logger LOGGER;
private static Stopwatch startWatch;
@Inject(method = "bootStrap", at = @At(value = "FIELD", opcode = Opcodes.PUTSTATIC, target = "Lnet/minecraft/util/registry/Bootstrap;isBootstrapped:Z", ordinal = 0))
private static void recordStartTime(CallbackInfo ci) {
startWatch = Stopwatch.createStarted();
}
@Inject(method = "bootStrap", at = @At("RETURN"))
private static void printStartTime(CallbackInfo ci) {
if(startWatch != null && startWatch.isRunning()) {
startWatch.stop();
LOGGER.info("Vanilla bootstrap took " + startWatch.elapsed(TimeUnit.MILLISECONDS) + " milliseconds");
}
}
}

View File

@ -24,7 +24,8 @@
"perf.sync_executor_sleep.SyncExecutorMixin",
"perf.compress_biome_container.MixinBiomeContainer",
"perf.nuke_empty_chunk_sections.MixinChunk",
"perf.cache_blockstate_cache_arrays.AbstractBlockStateCacheMixin"
"perf.cache_blockstate_cache_arrays.AbstractBlockStateCacheMixin",
"feature.measure_time.BootstrapMixin"
],
"client": [
"feature.measure_time.MinecraftMixin",