summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormd_5 <md_5@bigpond.com>2012-05-17 20:33:40 +1000
committermd_5 <md_5@bigpond.com>2012-05-17 20:33:40 +1000
commitcbb54d8ff6959def97c61e3fd55285c7d467844a (patch)
tree69badd8b76d102f2eefa7157118eb71917f89210
parent4208963b0024ec055c761fda6380773e48cd1380 (diff)
downloadEssentials-cbb54d8ff6959def97c61e3fd55285c7d467844a.tar
Essentials-cbb54d8ff6959def97c61e3fd55285c7d467844a.tar.gz
Essentials-cbb54d8ff6959def97c61e3fd55285c7d467844a.tar.lz
Essentials-cbb54d8ff6959def97c61e3fd55285c7d467844a.tar.xz
Essentials-cbb54d8ff6959def97c61e3fd55285c7d467844a.zip
There is no need to start a second task to measure lag, it can in fact be measured with enough precision from the exisitng one.
-rw-r--r--Essentials/src/com/earth2me/essentials/Essentials.java12
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsTimer.java31
-rw-r--r--Essentials/src/com/earth2me/essentials/IEssentials.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/LagMeter.java44
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandgc.java2
5 files changed, 38 insertions, 53 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java
index 11ee95511..fe1edb4e5 100644
--- a/Essentials/src/com/earth2me/essentials/Essentials.java
+++ b/Essentials/src/com/earth2me/essentials/Essentials.java
@@ -84,7 +84,7 @@ public class Essentials extends JavaPlugin implements IEssentials
private transient ExecuteTimer execTimer;
private transient I18n i18n;
private transient Metrics metrics;
- private transient LagMeter lagMeter;
+ private transient EssentialsTimer timer;
@Override
public ISettings getSettings()
@@ -239,12 +239,9 @@ public class Essentials extends JavaPlugin implements IEssentials
pm.registerEvents(tntListener, this);
- final EssentialsTimer timer = new EssentialsTimer(this);
+ timer = new EssentialsTimer(this);
getScheduler().scheduleSyncRepeatingTask(this, timer, 1, 100);
- lagMeter = new LagMeter();
- getScheduler().scheduleSyncRepeatingTask(this, lagMeter, 0, 40);
-
Economy.setEss(this);
execTimer.mark("RegListeners");
@@ -626,9 +623,10 @@ public class Essentials extends JavaPlugin implements IEssentials
return i18n;
}
- public LagMeter getLagMeter()
+ @Override
+ public EssentialsTimer getTimer()
{
- return lagMeter;
+ return timer;
}
private static class EssentialsWorldListener implements Listener, Runnable
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java
index 18f980a62..0d97c2792 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java
@@ -2,6 +2,7 @@ package com.earth2me.essentials;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.Set;
import java.util.logging.Level;
import org.bukkit.entity.Player;
@@ -11,6 +12,8 @@ public class EssentialsTimer implements Runnable
{
private final transient IEssentials ess;
private final transient Set<User> onlineUsers = new HashSet<User>();
+ private transient long lastPoll = System.currentTimeMillis() - 3000;
+ private final transient LinkedList<Float> history = new LinkedList<Float>();
EssentialsTimer(final IEssentials ess)
{
@@ -21,6 +24,21 @@ public class EssentialsTimer implements Runnable
public void run()
{
final long currentTime = System.currentTimeMillis();
+ long timeSpent = (currentTime - lastPoll) / 1000;
+ if (timeSpent == 0)
+ {
+ timeSpent = 1;
+ }
+ if (history.size() > 10)
+ {
+ history.remove();
+ }
+ float tps = 100f / timeSpent;
+ if (tps <= 20)
+ {
+ history.add(tps);
+ }
+ lastPoll = currentTime;
for (Player player : ess.getServer().getOnlinePlayers())
{
try
@@ -51,4 +69,17 @@ public class EssentialsTimer implements Runnable
user.resetInvulnerabilityAfterTeleport();
}
}
+
+ public float getAverageTPS()
+ {
+ float avg = 0;
+ for (Float f : history)
+ {
+ if (f != null)
+ {
+ avg += f;
+ }
+ }
+ return avg / history.size();
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java
index 85fc8165c..6e1887b87 100644
--- a/Essentials/src/com/earth2me/essentials/IEssentials.java
+++ b/Essentials/src/com/earth2me/essentials/IEssentials.java
@@ -71,5 +71,5 @@ public interface IEssentials extends Plugin
void setMetrics(Metrics metrics);
- LagMeter getLagMeter();
+ EssentialsTimer getTimer();
}
diff --git a/Essentials/src/com/earth2me/essentials/LagMeter.java b/Essentials/src/com/earth2me/essentials/LagMeter.java
deleted file mode 100644
index 1c50755b8..000000000
--- a/Essentials/src/com/earth2me/essentials/LagMeter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.earth2me.essentials;
-
-import java.util.LinkedList;
-
-
-public class LagMeter implements Runnable
-{
- private transient long lastPoll = System.currentTimeMillis() - 3000;
- private final transient LinkedList<Float> history = new LinkedList<Float>();
-
- @Override
- public void run()
- {
- long now = System.currentTimeMillis();
- long timeSpent = (now - lastPoll) / 1000;
- if (timeSpent == 0)
- {
- timeSpent = 1;
- }
- if (history.size() > 10)
- {
- history.remove();
- }
- float tps = 40f / timeSpent;
- if (tps <= 20)
- {
- history.add(tps);
- }
- lastPoll = now;
- }
-
- public float getAverageTPS()
- {
- float avg = 0;
- for (Float f : history)
- {
- if (f != null)
- {
- avg += f;
- }
- }
- return avg / history.size();
- }
-}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgc.java b/Essentials/src/com/earth2me/essentials/commands/Commandgc.java
index 46f6999bd..d9b08b50f 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandgc.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandgc.java
@@ -17,7 +17,7 @@ public class Commandgc extends EssentialsCommand
@Override
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
- float tps = ess.getLagMeter().getAverageTPS();
+ float tps = ess.getTimer().getAverageTPS();
ChatColor color;
if (tps >= 18)
{