Performance-Verbesserungen

Sponge beinhaltet mehrer Einstellungen um einem zu helfen die Performance zu verbessern und somit auch unter Belastung einen lagfreien Server zu haben.

Bemerkung

Die performance Gewinne hängen von dem verwendeten Setup ab, dementsprechend ist es empfehlenswert die Einstellungen zu testen um sicherzustellen, dass der Sponge Server die beste Performance erreicht!

Kreaturen Aktivierungsreichweite

Diese Einstellung verändert das Laden von Objekten in der nähe von Spielern. Bei niedrigen Werten werden nur nahe Objekte geladen und bei hohen auch solche die weit vom Spieler entfernt sind. Um die Leistung des Servers zu verbessern ist es zu empfehlen, vorallem wenn viele Spieler und Objekte auf dem Server sind, diese Einstellung zu Verringern.

Tipp

Es ist möglich diese Einstellung für jede Kreatur einzustellen. Wenn auto-populate auf true gesetzt ist wird Sponge automatisch alle Kreaturen zur Liste hinzufügen, wobei es empfohlen ist diese Einstellung wieder zu deaktivieren wenn die Liste einmal gefüllt wurde. Um neue Kreaturen hinzuzufügen können die oberen Schritte wiederholt werden und die neuen Kreaturen werden der Liste hinzugefügt.

entity-activation-range {
      # If enabled, newly discovered entities will be added to this config with
      # a default value.
      auto-populate=false

      # Default activation ranges used for all entities unless overidden.
      defaults {
          ambient=32
          aquatic=32
          creature=32
          misc=16
          monster=32
      }

Cache von Besitzern von gezähmten Kreaturen

Diese Einstellung speichert die UUIDs, von den Besitzern von zähmbaren Kreaturen, zwischen um das Regelmäßige nachsehen dieser zu sparen.

optimizations {
    # Caches tameable entities owners to avoid constant lookups against data watchers. If mods cause issue, disable.
    cache-tameable-owners=true
    }

Fallen gelassene Gegenstände vormischen

Diese Einstellung sorgt dafür, dass Gegenstände, die gedroppt werden, bereits zusammengeführt werden bevor extra Objekte für diese erschaffen worden sind.

optimizations {
    # If enabled, block item drops are pre-processed to avoid
    # having to spawn extra entities that will be merged post spawning.
    # Usually, Sponge is smart enough to determine when to attempt an item pre-merge
    # and when not to, however, in certain cases, some mods rely on items not being
    # pre-merged and actually spawned, in which case, the items will flow right through
    # without being merged.
    drops-pre-merge=true
    }

Beleuchtungs Patch um ungeladene Chunks zu ignorieren

Durch die Aktivierung dieser Einstellung werden beim Berechnen der Beleuchtung noch nicht generierte Chunks ignoriert, dadurch wird der Speicherzugriff reduziert und es werden weniger Chunks generiert und somit die Leistung verbessert.

optimizations {
      # This prevents chunks being loaded for getting light values at specific
      # block positions. May have side effects.
      ignore-unloaded-chunks-on-get-light=true
      }

Chunk Suchvorgänge zwischenspeichern

Diese Einstellung aktiviert Sponges internes Chunk Caching um die Serverleistung zu verbessern. Hierfür wird etwas mehr Arbeitsspeicher für das Cachen verwendet, sollte dieser also nicht reichen kann man testen diese Einstellung zu deaktivieren.

optimizations {
      # Caches chunks internally for faster returns when querying at various
      # positions
      chunk-map-caching=true
      }

Inline Block Position Überprüfungen

Diese Einstellung inlined den Test, ob eine Blockposition in einer Welt valide ist.

optimizations{
      # Inlines a simple check for whether a BlockPosition is valid
      # in a world. By patching the check, the JVM can optimize the
      # method further while reducing the number of operations performed
      # for such a simple check. This may however break mods that alter
      # world heights and can thus be disabled in those cases.
      inline-block-position-checks=true
      }

Anpassung des Automatischen Speicherintervalls

Vanilla Minecraft speichert Chunks alle 900 Ticks (45 Sekunden). Wenn du diesen Intervall verändern möchtest kannst du dies in der global.conf des Servers ändern:

world {
      # The auto-save tick interval used when saving global player data.
      # Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
      auto-player-save-interval=900

      # The auto-save tick interval used to save all loaded chunks in a world.
      # Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
      auto-save-interval=900
      }

Den Intervall zu verringern erhöht zwar die Last auf die Server CPU und den Speicher des Servers, verringert allerdings den Datenverlust, sollte der Server abstürzen oder der Strom ausfallen. Dementsprechend sorgt eine Erhöhung des Speicherintervalls dafür, dass die Last auf die Hardware geringer ist allerdings auch der Datenverlust bei einem Serverausfall größer ist.