|
|
|
@ -9,6 +9,9 @@ import java.awt.Frame;
|
|
|
|
|
import java.awt.Graphics;
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.lang.management.GarbageCollectorMXBean;
|
|
|
|
|
import java.lang.management.ManagementFactory;
|
|
|
|
|
|
|
|
|
|
import org.mcmodule.math.BigInteger;
|
|
|
|
|
import java.nio.ByteBuffer;
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
@ -272,6 +275,7 @@ public abstract class Minecraft implements Runnable, IPlayerUsage
|
|
|
|
|
/** holds the current fps */
|
|
|
|
|
int fpsCounter = 0;
|
|
|
|
|
long prevFrameTime = -1L;
|
|
|
|
|
private long lastUpdateGCCollectedObjects, lastUpdateGCUsedTime;
|
|
|
|
|
|
|
|
|
|
public Minecraft(Canvas par1Canvas, MinecraftApplet par2MinecraftApplet, int par3, int par4, boolean par5)
|
|
|
|
|
{
|
|
|
|
@ -865,6 +869,8 @@ public abstract class Minecraft implements Runnable, IPlayerUsage
|
|
|
|
|
{
|
|
|
|
|
this.toggleFullscreen();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (this.gameSettings.showDebugInfo && this.gameSettings.field_74329_Q)
|
|
|
|
|
{
|
|
|
|
@ -890,6 +896,18 @@ public abstract class Minecraft implements Runnable, IPlayerUsage
|
|
|
|
|
|
|
|
|
|
this.guiAchievement.updateAchievementWindow();
|
|
|
|
|
this.mcProfiler.startSection("root");
|
|
|
|
|
long gcUsedTime = 0;
|
|
|
|
|
for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) {
|
|
|
|
|
long time = gc.getCollectionTime();
|
|
|
|
|
if(time > 0) gcUsedTime += time;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long time = gcUsedTime - lastUpdateGCUsedTime;
|
|
|
|
|
if(gcUsedTime > 0) {
|
|
|
|
|
this.mcProfiler.startSection("gc");
|
|
|
|
|
this.mcProfiler.endSectionWithTime(time * 1000000);
|
|
|
|
|
}
|
|
|
|
|
lastUpdateGCUsedTime = gcUsedTime;
|
|
|
|
|
Thread.yield();
|
|
|
|
|
|
|
|
|
|
if (Keyboard.isKeyDown(65))
|
|
|
|
@ -929,9 +947,16 @@ public abstract class Minecraft implements Runnable, IPlayerUsage
|
|
|
|
|
|
|
|
|
|
while (getSystemTime() >= this.debugUpdateTime + 1000L)
|
|
|
|
|
{
|
|
|
|
|
long gcCollectedObjects = 0;
|
|
|
|
|
for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) {
|
|
|
|
|
long count = gc.getCollectionCount();
|
|
|
|
|
if(count > 0) gcCollectedObjects += count;
|
|
|
|
|
}
|
|
|
|
|
long collectedObjects = gcCollectedObjects - lastUpdateGCCollectedObjects;
|
|
|
|
|
lastUpdateGCCollectedObjects = gcCollectedObjects;
|
|
|
|
|
field_71470_ab = this.fpsCounter;
|
|
|
|
|
this.debug = field_71470_ab + " fps, " + WorldRenderer.chunksUpdated + " chunk updates";
|
|
|
|
|
this.extraDebug = String.format("BC: %d, BR: %d", BigInteger.getAndClearCreateCounter(), BigInteger.getAndClearFreeCounter());
|
|
|
|
|
this.extraDebug = String.format("BC: %d, OR: %d", BigInteger.getAndClearCreateCounter(), collectedObjects);
|
|
|
|
|
WorldRenderer.chunksUpdated = 0;
|
|
|
|
|
this.debugUpdateTime += 1000L;
|
|
|
|
|
this.fpsCounter = 0;
|
|
|
|
|