From d6c2504bbfd83162d63b19277fa25d6c1fc921cc Mon Sep 17 00:00:00 2001 From: wizjany Date: Tue, 14 May 2019 18:49:23 -0400 Subject: [PATCH] Make CPU profiling interval configurable. Also lower the default to something more sensible. Also cleanup unused imports. --- .../java/com/sk89q/worldguard/WorldGuard.java | 2 -- .../worldguard/commands/WorldGuardCommands.java | 15 +++++++++++++-- .../protection/ApplicableRegionSet.java | 1 - .../worldguard/session/handler/ExitFlag.java | 1 - .../session/handler/WeatherLockFlag.java | 2 -- .../worldguard/util/profiler/SamplerBuilder.java | 2 +- .../worldguard/bukkit/BukkitOfflinePlayer.java | 1 - .../bukkit/BukkitWorldGuardPlatform.java | 2 -- .../bukkit/listener/PlayerModesListener.java | 1 - 9 files changed, 14 insertions(+), 13 deletions(-) diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/WorldGuard.java b/worldguard-core/src/main/java/com/sk89q/worldguard/WorldGuard.java index 3c1b34cc..10148b96 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/WorldGuard.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/WorldGuard.java @@ -21,7 +21,6 @@ import static com.google.common.base.Preconditions.checkNotNull; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import com.sk89q.minecraft.util.commands.CommandException; @@ -47,7 +46,6 @@ import java.io.File; import java.io.IOException; import java.util.List; -import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/commands/WorldGuardCommands.java b/worldguard-core/src/main/java/com/sk89q/worldguard/commands/WorldGuardCommands.java index e7cb9c06..e05f7396 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/commands/WorldGuardCommands.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/commands/WorldGuardCommands.java @@ -146,9 +146,9 @@ public void report(CommandContext args, final Actor sender) throws CommandExcept } } - @Command(aliases = {"profile"}, usage = "[]", + @Command(aliases = {"profile"}, usage = "[-p] [-i ] [-t ] []", desc = "Profile the CPU usage of the server", min = 0, max = 1, - flags = "t:p") + flags = "t:i:p") @CommandPermissions("worldguard.profile") public void profile(final CommandContext args, final Actor sender) throws CommandException, AuthorizationException { Predicate threadFilter; @@ -182,6 +182,16 @@ public void profile(final CommandContext args, final Actor sender) throws Comman } } + int interval = 20; + if (args.hasFlag('i')) { + interval = args.getFlagInteger('i'); + if (interval < 1 || interval > 100) { + throw new CommandException("Interval must be between 1 and 100 (in milliseconds)"); + } + if (interval < 10) { + sender.printDebug("Note: A low interval may cause additional slowdown during profiling."); + } + } Sampler sampler; synchronized (this) { @@ -192,6 +202,7 @@ public void profile(final CommandContext args, final Actor sender) throws Comman SamplerBuilder builder = new SamplerBuilder(); builder.setThreadFilter(threadFilter); builder.setRunTime(minutes, TimeUnit.MINUTES); + builder.setInterval(interval); sampler = activeSampler = builder.start(); } diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/protection/ApplicableRegionSet.java b/worldguard-core/src/main/java/com/sk89q/worldguard/protection/ApplicableRegionSet.java index d455d8a4..6e576ce5 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/protection/ApplicableRegionSet.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/protection/ApplicableRegionSet.java @@ -23,7 +23,6 @@ import com.sk89q.worldguard.protection.association.RegionAssociable; import com.sk89q.worldguard.protection.flags.Flags; import com.sk89q.worldguard.protection.flags.Flag; -import com.sk89q.worldguard.protection.flags.RegionGroup; import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.managers.RegionManager; diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/ExitFlag.java b/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/ExitFlag.java index 6a30e1e3..dcae5390 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/ExitFlag.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/ExitFlag.java @@ -22,7 +22,6 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.LocalPlayer; -import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.commands.CommandUtils; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.flags.Flags; diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/WeatherLockFlag.java b/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/WeatherLockFlag.java index 25549a4c..d75bf903 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/WeatherLockFlag.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/session/handler/WeatherLockFlag.java @@ -27,8 +27,6 @@ import com.sk89q.worldguard.session.MoveType; import com.sk89q.worldguard.session.Session; -import javax.annotation.Nullable; - public class WeatherLockFlag extends FlagValueChangeHandler { public static final Factory FACTORY = new Factory(); diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/util/profiler/SamplerBuilder.java b/worldguard-core/src/main/java/com/sk89q/worldguard/util/profiler/SamplerBuilder.java index 093ee293..2d834155 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/util/profiler/SamplerBuilder.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/util/profiler/SamplerBuilder.java @@ -49,7 +49,7 @@ public int getInterval() { } public void setInterval(int interval) { - checkArgument(interval >= 10, "interval >= 10"); + checkArgument(interval >= 1, "interval >= 1"); this.interval = interval; } diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitOfflinePlayer.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitOfflinePlayer.java index f8ddb6cc..9818d0c7 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitOfflinePlayer.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitOfflinePlayer.java @@ -28,7 +28,6 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.weather.WeatherType; -import com.sk89q.worldedit.world.weather.WeatherTypes; import org.bukkit.OfflinePlayer; import java.util.UUID; diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java index 7015e842..65e9e464 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldGuardPlatform.java @@ -19,8 +19,6 @@ package com.sk89q.worldguard.bukkit; -import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.report.ReportList; import com.sk89q.worldedit.world.gamemode.GameMode; diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java index 61d5f161..41837f38 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java @@ -21,7 +21,6 @@ import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.WorldGuard; -import com.sk89q.worldguard.config.ConfigurationManager; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.bukkit.event.player.ProcessPlayerEvent; import com.sk89q.worldguard.session.Session;