Gtnh tps

In GTNH ist eine starke Diskrepanz zwischen Vanilla Ticks (welche ja auch über den /servertps Befehl eingesehen werden können) und den TPS der Modded Maschienen etc. messbar.

Diese sorgt Teilweise dafür, dass Maschinen die 6-7 Fache Zeit brauchen um ein Rezept auszuführen. Messbar ist dies mit eigentlich allen Maschinen (Mod Unabhängig). Die Vanilla TPS liegen in den Welten bei 20 (was auch übereinstimmt mit einer manuellen Messung der benötigten Zeit für Vanilla Rezepte bsp. ein Schmelzdurchgang im Furnace = 10s). Diese 20 TPS stimmen aber definitiv nicht für GT Maschinen oder Modded Maschinen generell.

Diese Diskrepanz ist in jeder Welt anders und scheint keine anderen Welten zu beeinflussen (getestet auf mehreren normalen MyFTB Welten und auch in Utility Worlds).

Wie bereits in deinem letztem Beitrag von Hurly vermutet wurde, ist es potentiell so das bei Gregtech die Rechenzeit für alle geladenen/laufenden Maschinen von Gregtech und nicht von Minecraft limitiert ist.
Was genau das bedeuten kann bzw. wie das funktionieren könnte, ist das Gregtech in jedem Minecraft Tick nur eine begrenste Zeit für Maschinen verwendet und alle Maschinen die in diesem Tick nicht „abgefertigt“ werden können werden dann erst im nächsten Tick „abgefertigt“ (oder in übernächsten wen der 2. Tick auch „voll“ ist usw.). Wenn die Liste einmal abgearbeitet ist gehts wieder von vorne los.
Der Vorteil eines solchen Systems ist das Gregtech selber die ms einer Welt/ des Servers immer nur bis zu einem bestimmten Grad beinflusst, aka man könnte in einer Welt mehrere tausend Maschinen stehen haben die alle laufen (zwar langsamer aber sie laufen) aber immernoch 20 TPS haben.

Die „einfachste“ Möglichkeit dies zu testen wäre alle Maschinen in allen geladenen Chunks, aka alle geladenen Chunks auf allen geladenen Welten/Dimensionen, abzuschalten bis auf eine und zu schauen ob diese immernoch langsamer ist. Sollte die Maschine immernoch langsamer sein könnte es auch sein das auch nicht laufende Maschinen in der Liste stehen und „abgefertigt“ werden müssen. Das lässt sich nur durch abbauen aller Maschienen in allen geladenen Chunks in allen geladenen Welten überprüfen. Sollte auch das nicht helfen weiß ich leider auch nicht weiter.

Im voherigen Beitrag erwähntest du das du eine Stopuhr fürs Messen der Zeit nutzt. Um das Element Mensch raus zu filtern würde ich empfehlen ein Testsetup auf Redstone Basis zu bauen. D. h. ein System bei welchem ein Redstone Signal genutzt wird um es zu starten (z.b. gelockter Hopper) und welches ein Signal ausgibt sobald es fertig ist (z.b. Comparitor an ner Chest). Sobalt das System das „Start“ Signal erhält started es auch automatisch einen vanilla counter (auf Repeater oder Item basis) welcher stopt sobalt das „Fertig“ Signal ausgegeben wird.

Soweit mir ersichtlich haben sich seit deinem letztem Beitrag zwei Sachen geändert:

  1. Das „Feature“ hat sich auf weiter Mods ausgeweitet (welche hast du bislang getested?). Dies ist ein wenig komisch da es eigentlich nur zwei möglichkeiten dafür gibt: a) Die Liste beinhalted alle Tileenties, was allerdings auch Vanilla Furnaces mit einschließen würde, oder b) für jeden Mod gibt es eine separate Liste und die Vanilla Liste ist momentan einfach nicht voll genug um Sprünge nötig zu machen. In beiden Fällen wäre es aber schon fast nötig das „Feature“ in Forge zu integrieren da es auf alle Mods und Vanilla Einfluss nimmt.
  2. Du bist jetzt Mod und hast jetzt bessere Möglichkeiten dieses Geschehen zu untersuchen und zu documentieren.

ist es potentiell so das bei Gregtech die Rechenzeit für alle geladenen/laufenden Maschinen von Gregtech und nicht von Minecraft limitiert ist.

Falls ein solcher Mechanismus implementiert ist sollte er doch eigentlich <hier> implementiert sein. Ich selbst sehe zumindest nicht wo dies dort passiert (allerdings kann dies auch an meinen in diesem Bereich begrenzten Kenntnissen liegen).

Die „einfachste“ Möglichkeit dies zu testen wäre alle Maschinen in allen geladenen Chunks, aka alle geladenen Chunks auf allen geladenen Welten/Dimensionen, abzuschalten

Dies ist leider nicht so leicht möglich, allerdings ist eine Besserung dieses Verhaltens zu erwarten, da die GT Prozessgeschwindigkeit runter ging je mehr ich gebaut habe / je mehr in einer Welt vorhanden ist (kann so auch in verschiedenen Welten verschiedener Spieler betrachtet werden).

Im voherigen Beitrag erwähntest du das du eine Stopuhr fürs Messen der Zeit nutzt. Um das Element Mensch raus zu filtern würde ich empfehlen ein Testsetup auf Redstone Basis zu bauen. D. h. ein System bei welchem ein Redstone Signal genutzt wird um es zu starten (z.b. gelockter Hopper) und welches ein Signal ausgibt sobald es fertig ist (z.b. Comparitor an ner Chest). Sobalt das System das „Start“ Signal erhält started es auch automatisch einen vanilla counter (auf Repeater oder Item basis) welcher stopt sobalt das „Fertig“ Signal ausgegeben wird.

Basierend auf der gemessenen Diskrepanz zwischen soll und ist Wert halte ich den entstehenden Messfehler für vernachlässigbar.

Das „Feature“ hat sich auf weiter Mods ausgeweitet (welche hast du bislang getested?). Dies ist ein wenig komisch da es eigentlich nur zwei möglichkeiten dafür gibt: a) Die Liste beinhalted alle Tileenties, was allerdings auch Vanilla Furnaces mit einschließen würde, oder b) für jeden Mod gibt es eine separate Liste und die Vanilla Liste ist momentan einfach nicht voll genug um Sprünge nötig zu machen. In beiden Fällen wäre es aber schon fast nötig das „Feature“ in Forge zu integrieren da es auf alle Mods und Vanilla Einfluss nimmt.

Dieser Punkt machte mich bzgl. der GT internen Limitierung auch stutzig. Option b) halte ich für äußerst unwahrscheinlich. Getestet habe ich in der selben Welt den Vanilla Furnace, eine GT Maschine, ein Natura Nether Furnace und ein Ender IO Alloy Smelter. Alle erfahren eine gleiche „verlangsamung“. Von Natura und Ender IO ist es jeweils der einzige Block in der gesamten Welt => eine separate Liste hat wohl kaum die selbe Auslastung mit einer Maschine wie die GT Liste mit ca. 500 (2,85TPS).

Jain in Zeile 73 finded sich eine Funktion die für ein solches system genutzt werden kann, allerdings kann ich momentan leider die Main Funktion die pro tick asugeführt wird nicht finden um dies zu überprüfen.

Dies deutet sehr stark auf ein system hinaus wie beschrieben, allerdings wären wenn dann alle geladenen Welten in einer Liste. Wenn man also gerade an fängt und nur 1 oder 2 Maschinen hat könnte diese Velangsamung immernoch auftreten wen ein Spieler online ist der deutlich weiter ist und mehrere 100 Maschinen in seiner Base läd. Es müste doch möglich sein Nachts (oder eine andere Zeit wo keiner online ist) einmal alle Welten zu unloaden und dann in der Farmwelt mit 1-2 Maschinen zu testen.

Es ging mir bei dem setup nicht um discrepancen zwischen „soll“ und „ist“ Werten sondern differenzen zwischen „ist“ Werten bei a) GT vs z.b. Ender IO b) 1000 geladene Msachinen vs z.b. 50 geladene Maschinen.

Ich stimme zu das eine Spaltung der Liste in verschiedene Mods unwarscheinlich ist, allerdings halte eich eine aufsplitung nach Dimensionen (aka Welten) für deutlich unwarscheinlicher da es in vanilla + GT nicht so viele Dimensionen gibt und es eher schwer ist seine Fabrik auf diese auf zu teilen. Das es so viele Dimensionen/Welten gibt ist ein Feature von myFTB und daher eher abgekopelt vom modpack. D. h. es könnte sein das wärend du deine Messungen gemacht hast eine andere Welt geladen war die z.b. ausgiebig gebrauch von Ender IO macht.

Dies deutet sehr stark auf ein system hinaus wie beschrieben, allerdings wären wenn dann alle geladenen Welten in einer Liste. Wenn man also gerade an fängt und nur 1 oder 2 Maschinen hat könnte diese Velangsamung immernoch auftreten wen ein Spieler online ist der deutlich weiter ist und mehrere 100 Maschinen in seiner Base läd.

Diese Verlangsamung tritt definitiv nicht Serverweit auf sondern ist in jeder Welt unterschiedlich.

Ich stimme zu das eine Spaltung der Liste in verschiedene Mods unwarscheinlich ist, allerdings halte eich eine aufsplitung nach Dimensionen (aka Welten) für deutlich unwarscheinlicher da es in vanilla + GT nicht so viele Dimensionen gibt und es eher schwer ist seine Fabrik auf diese auf zu teilen.

Eine Aufsfpaltung nach Mods halte ich auch für unwahrscheinlich, allerdings sieht es für mich schon stark nach einer Aufspaltung nach Dimensionen auf.

D. h. es könnte sein das wärend du deine Messungen gemacht hast eine andere Welt geladen war die z.b. ausgiebig gebrauch von Ender IO macht.

Bei Ender IO wäre das eventuell noch möglich (Conduits) wenn auch schon höchst unwahrscheinlich, da niemand exzessiv Ender IO Maschinen nutzt (in dem Modpack einfach nur begrenzt nützlich und erfordern bereits eine Vielzahl von GT Maschinen, dass eine Welt mit mehr Ender IO als GT existiert ist nahezu undenkbar in diesem Modpack, in den meisten Welten war ich auch schonmal zu Besuch und mir würde nicht eine einzig mit vielen Ender IO Maschinen einfallen). Umso unwahrscheinlicher ist, dass es gleich viele Natura wie GT Maschinen auf dem Server gibt.

Es müste doch möglich sein Nachts (oder eine andere Zeit wo keiner online ist) einmal alle Welten zu unloaden und dann in der Farmwelt mit 1-2 Maschinen zu testen.

Da ein paar der Welten (v.a. die der etwas fortgeschrittenen Spieler in Utility Worlds (Mod nicht MyFTB) gebaut haben ich diese nicht einfach Unloaden kann. Allerdings entspricht in der Farmwelt die „Ist“ Prozesszeit auch der „Soll“ Prozesszeit während parallel in meiner und anderen Spieler Welten dies nicht der Fall ist.

Naja, scheint so als fühle sich hier niemand angesprochen.

Evtl. liegt das auch daran das man sich die Frage stellt warum du dies im Forum fragst obwohl du als Mod das Problem in der Team Besprechung ansprechen könnst. Sollte das schon geschehen sein, es allerdings nicht möglich war die Ursache zu finden, dann wäre es evtl. hilfreich gewesen dies als potentiellen Aufruf nach Abhilfe zu kennzeichnen.

ist es potentiell so das bei Gregtech die Rechenzeit für alle geladenen/laufenden Maschinen von Gregtech und nicht von Minecraft limitiert ist.

Das stimmt nicht. Es gibt weder in GT5 noch in Vanilla minecraft etwas, das TileEntitys und World Ticks trennt. Als GTNH/GT5U Dev kann ich euch sagen, das wird an eurer Spigot/Bukkit/Ultramine/Was-auch-immer custom Server configuration/implementation liegen. Bei jeden anderem Fehler könnt ihr aber gerne ein Ticker hier aufmachen.

lg
bart

1 Like