Wie Minecraft funktioniert (Was verursacht Verzögerung?)
Der Schlüssel zum Verständnis der Ursachen von Verzögerungen liegt darin, zu verstehen, wie Minecraft funktioniert. Die Minecraft-Serversoftware arbeitet alle in einer ähnlichen Angelegenheit mit einem Hauptproblem: Es gibt keine Multithreading- oder Zeitlimits für die Hauptspielschleife. Wenn der Server zu tic wechselt, durchläuft er jedes TileEntity-Update, Entity-Update, Block-Update, Ereignisse und andere Prozesse, bis es abgeschlossen ist. Dies alles tritt in einem Thread auf und die nächste Schleife kann erst beginnen, wenn die aktuelle beendet ist. Die Welt wird nicht aktualisiert, die Spieler scheinen sich nicht zu bewegen und die Entitäten werden eingefroren. Idealerweise sollte jeder Tic nicht länger als 50 ms dauern, um 20 Tics pro Sekunde (TPS) aufrechtzuerhalten. Dies kann bei 18 TPS mit minimalen Problemen bis zu 55,55 ms betragen. Wenn Sie einen niedrigeren Wert wählen, werden Sie eine Verzögerung feststellen.
Typische Ursachen für Verzögerungen
Es gibt viele Dinge, die zu Verzögerungen führen können, aber einige davon sind für die meisten Server der wahrscheinlichste Schuldige.
	- Dateinutzung : Jedes Plugin, das ständig aus Player-Dateien liest, insbesondere bei Ereignissen wie Bewegung, Beschädigung oder Interaktion. Einige Beispiele wären einige PVP-Flags oder Glow-Plugins, die kontinuierlich aus Player-Dateien gelesen werden.
 
	- Flatfiles als Datenbank : Wenn Sie Plugins haben, die große Dateien verwenden, um viele Daten zu verfolgen, die durch diese Datei oder im Speicher iterieren, dauert es lange, je nachdem, wie sie gespeichert werden. Viele Plugins tun dies und treffen keine Vorkehrungen, um zu verhindern, dass sich die Verarbeitungszeit auf das Server-Tic auswirkt, wenn die Datenbanken aufgebläht werden. Sie werden dies häufig sehen, wenn Sie große MagicSpells-Konfigurationen laden oder Berechtigungssysteme verwenden, die YAML anstelle einer geeigneten Datenbank wie PEX und GroupManager verwenden.
 
	- Zu viele Operationen : Wenn ein Plugin zu viele Entitäten erzeugt oder versucht, komplexe Aufgaben für Ereignisse wie Bewegung auszuführen, wird eine Verzögerung angezeigt. Selbst wenn jeder Lauf weniger als 1 ms dauert, wird er exponentiell, wenn Sie ein Ereignis 20.000 Mal pro Sekunde verarbeiten. Plugins, die dies verursachen können, sind Plugins zur weltweiten Bearbeitung wie VoxelSniper und WorldEdit. oder Schutz-Plugins wie Anti-Cheats und World Protections.
 
	- Zu viele Chunks geladen : Ein Chunk ist 
16*16*256. Das hört sich vielleicht nicht viel an, aber wenn es multipliziert wird, bedeutet dies, dass es 65.536 Blöcke pro Block gibt. Jeder Spieler kann je nach Konfiguration mehr als 200 Chunks um sich haben. Das sind mehr als 13.107.200 Blöcke. Dies nimmt viel Speicherplatz in Anspruch. Wenn sogar 1% davon TileEntities sind, werden 131.072 TileEntities geladen, die jeden Tic aktualisieren müssen. Mods sind bekannt dafür, dass sie auf TileEntities langsame Verarbeitungszeiten haben. 
	- Cascading WorldGen : Dies ist der Fall, wenn ein Plugin oder Mod Strukturen außerhalb des angegebenen Chunks generiert. Dies bewirkt, dass der nächste Block geladen, generiert und dann erneut ausgelöst wird, wenn auch Strukturen in den nächsten Block überlaufen. Dies ist ein schlechtes Design im Namen der Entwickler und alle Plugins oder Mods, die dies tun, sollten sofort entfernt werden.
 
	- Tile Einheiten : Siehe LagGoggles Abschnitt weiter unten.
 
Das Ermitteln der Ursache für Verzögerungen ist heutzutage im Allgemeinen ein einfaches Verfahren, da die meisten Minecraft-Serversoftware mit Profiling-Tools erstellt wurde.
Zeitberichte für Spigot / PaperSpigot
Um einen detaillierten Zeitbericht zu erhalten, können Sie den folgenden Befehl verwenden.
/timings on
Sie sollten ein paar Minuten warten und es verzögern lassen, während Ihre Timings laufen. Generieren Sie nach einer Weile den Bericht.
/timings paste
Auf diese Weise erhalten Sie einen Link zu einer Website mit einer schönen Aufschlüsselung des Berichts mit einfachen Optionen zum Durchsuchen aller Daten, die Sie erhalten. Weitere Informationen zum Lesen finden Sie im Timing-Wiki von Spigot .
Sie sollten das Timing danach deaktivieren, da Sie nicht möchten, dass Junk-Daten Ihren nächsten Messwert verstopfen, und das Timing dem Tic zusätzliche Zeit hinzufügt.
/timings off
Zeitberichte für Schwamm
Um einen detaillierten Zeitbericht zu erhalten, können Sie den folgenden Befehl verwenden.
/sponge timings on
Sie sollten ein paar Minuten warten und es verzögern lassen, während Ihre Timings laufen. Generieren Sie nach einer Weile den Bericht.
/sponge timings report
Auf diese Weise erhalten Sie einen Link zu einer Website mit einer schönen Aufschlüsselung des Berichts mit einfachen Optionen zum Durchsuchen aller Daten, die Sie erhalten. Da das Zeitmesssystem von Sponge auf dem von Spigot basiert, können Sie im Timing-Wiki von Spigot mehr darüber erfahren, wie man diese liest .
Sie sollten das Timing danach deaktivieren, da Sie nicht möchten, dass Junk-Daten Ihren nächsten Messwert verstopfen, und das Timing dem Tic zusätzliche Zeit hinzufügt.
/sponge timings off
Sie können die Timings auch zurücksetzen.
/sponge timings reset
Schritte zur Reduzierung der Verzögerung
	- Verwenden Sie geeignete Argumente für Ihre Skriptdatei, um Minecraft zu starten. Erfahren Sie mehr über die entsprechenden Java - Argumente hier
 
	- Verwenden Sie LuckPerms oder einen Berechtigungsmanager, der anstelle einer Einfachdatei eine geeignete Datenbank verwendet
 
	- Vermeiden Sie Blocklader insgesamt
 
	- Entfernen Sie alles, was eine kaskadierende Welterzeugung verursacht
 
	- Begrenzen Sie Anti-Cheat-Plugins, um nicht übereifrig zu sein
 
	- Begrenzen Sie die Sichtweite der Spieler in 
server.properties 
	- Befreie feindliche Mobs nach einer festgelegten Zeitspanne
 
	- Starten Sie den Server täglich neu, um Lecks von Java zu beseitigen
 
	- Laden Sie den Server NIEMALS neu, da dies zu Undichtigkeiten und anderen Problemen führt
 
	- Verwenden Sie FastAsync-Versionen von Plugins wie WorldEdit und VoxelSniper
 
	- Begrenzen Sie die Größe Ihrer Welt, damit nicht ständig neue Blöcke erstellt werden
 
	- Begrenzen Sie die Anzahl der verwendeten Plugins. Nicht alle Plugins sind gut gebaut und je mehr Sie haben, desto mehr Probleme werden Sie haben
 
LagGoggles
Ein großer Teil der Verzögerung auf modifizierten Servern stammt von Kachelentitäten. Dies sind die Entitäten, die für Blöcke erstellt wurden, die zur Verarbeitung der Funktionen und Ereignisse des Blocks verwendet werden. Wenn diese zu lange dauern oder zu viele vorhanden sind, kann dies die Zeit pro Tic erhöhen und den gesamten Server-TPS verringern. Eine Möglichkeit, diese Probleme zu visualisieren, ist die Verwendung eines Mods namens LagGoggles. Du kannst diesen Mod von CurseForce herunterladen .