diff options
author | miozune <miozune@gmail.com> | 2023-09-09 23:32:35 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-09 16:32:35 +0200 |
commit | c480ec3a2b5fee148b87faf54096e83f7f840e0d (patch) | |
tree | 059266e27d352551566569ca345f19857764156c /src/main/java/gregtech/api/metatileentity/implementations | |
parent | 6fffceea470bcede71582da257270ecfbbed27c6 (diff) | |
download | GT5-Unofficial-c480ec3a2b5fee148b87faf54096e83f7f840e0d.tar.gz GT5-Unofficial-c480ec3a2b5fee148b87faf54096e83f7f840e0d.tar.bz2 GT5-Unofficial-c480ec3a2b5fee148b87faf54096e83f7f840e0d.zip |
Less aggressive System.nanoTime() (#2269)
* Less aggressive System.nanoTime()
* Address reviews
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/implementations')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 9d86608bf4..ff2ecfa83f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -68,6 +68,7 @@ import gregtech.api.objects.GT_ItemStack; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SingleRecipeCheck; +import gregtech.api.util.GT_ClientPreference; import gregtech.api.util.GT_ExoticEnergyInputHelper; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ParallelHelper; @@ -1767,7 +1768,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity currentTip.add( GT_Waila.getMachineProgressString(isActive, tag.getInteger("maxProgress"), tag.getInteger("progress"))); // Show ns on the tooltip - if (GT_Mod.gregtechproxy.wailaAverageNS) { + if (GT_Mod.gregtechproxy.wailaAverageNS && tag.hasKey("averageNS")) { int tAverageTime = tag.getInteger("averageNS"); currentTip.add("Average CPU load of ~" + formatNumbers(tAverageTime) + " ns"); } @@ -1795,16 +1796,25 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } } - int tAverageTime = 0; - for (int tTime : this.getBaseMetaTileEntity() - .getTimeStatistics()) { - tAverageTime += tTime; - } + final GT_ClientPreference preference = GT_Mod.gregtechproxy.getClientPreference(player.getUniqueID()); + if (preference != null && preference.isWailaAverageNSEnabled()) { + getBaseMetaTileEntity().startTimeStatistics(); + int tAverageTime = 0; + int amountOfZero = 0; + for (int tTime : this.getBaseMetaTileEntity() + .getTimeStatistics()) { + tAverageTime += tTime; + if (tTime == 0) { + amountOfZero += 1; + } + } - tag.setInteger( - "averageNS", - tAverageTime / this.getBaseMetaTileEntity() - .getTimeStatistics().length); + // tick time zero means it has not been updated yet + int samples = getBaseMetaTileEntity().getTimeStatistics().length - amountOfZero; + if (samples > 0) { + tag.setInteger("averageNS", tAverageTime / samples); + } + } } @Override |