Réglages de performance

Sponge fournit plusieurs options pour augmenter les performance et vous aider à faire tourner un serveur sans ralentissement, même sous forte charge.

Note

Bien que nous essayons d’améliorer la performance de chaque serveur, les gains de performance dépendent de votre installation. Veuillez exécuter quelques évaluations pour vous assurez que vous avez bien configuré votre serveur Sponge pour en prendre avantage le plus possible !

Zone d’Activation des Entités

Ce paramètre va altérer le comportement de chargement des entités autour des joueurs. Diminuer la valeur va seulement charger les entités les plus près, et l’augmenter va charger les entités qui sont loin du joueur. Diminuez la valeur pour améliorer la performance de votre serveur, surtout avec un nombre élevé d’entités et de joueurs. Pour désactiver l’intervalle d’activation pour une entité spécifique, définissez sa valeur à 0.

Astuce

Il est possible de spécifier l’intervalle d’activation par monstre. Vous pouvez définir auto-populate à true et Sponge ajoutera tous les monstres disponibles à la liste d’intervalle d’activation, il est recommandée de la désactivée après la liste remplie. Si vous ajoutez de nouveaux monstres au jeu, répétez la procédure et les nouveaux monstres seront ajoutés à la suite de la liste.

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 overridden.
    defaults {
        ambient=32
        aquatic=32
        creature=32
        misc=16
        monster=32
    }
}

Éclairage Asynchrone

Ce paramètre exécutera les vérifications d’éclarage sur un thread séparé pour améliorer les performances.

optimizations {
    # Runs lighting updates async.
    async-lighting {
        # If enabled, runs lighting updates async.
        enabled=true
        # The amount of threads to dedicate for async lighting updates. (Default: 2)
        num-threads=2
    }
}

Mise en Cache des Propriétaires Domptables

Ce paramètre mettra en cache le UUID des propriétaires d’entités domptables afin de limiter le nombre de recherches du data watcher.

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

Drops Pré-Fusion

Ce paramètre va pré-traiter et potentiellement fusionner les items droppés afin de limiter le nombre d’entités qui sont fusionnées après leur spawn.

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
}

Panda Redstone

Un algorithme de mise à jour de Redstone alternatif, mène à moins de mises à jour de blocs quand la Redstone change d’état.

optimizations {
    # If enabled, uses Panda4494's Redstone implementation which improves performance.
    # See https://bugs.mojang.com/browse/MC-11193 for more information.
    # Note: This optimization has a few issues which is explained in the bug report. We are not responsible for any issues this may cause.
    panda-redstone=false
}

Intervalle d’ajustement de la sauvegarde automatique

Minecraft Vanilla sauvegarde tous les chunks tous les 900 ticks (45 secondes) par défaut. Si vous voulez augmenter ou diminuer cette intervalle, vous pouvez le changer dans le fichier global.conf:

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
}

Réduire l’intervalle augmente la charge du processeur ainsi que la place sur le stockage votre serveur, mais réduit les pertes de données qui peuvent arriver si le serveur le bloque lors d’une coupure de courant. À l’inverse, augmenter l’intervalle de sauvegarde automatique réduit la charge du serveur, mais augmente la quantité de données perdues s’il y a une coupure de courant.

Temps réel

Activer ceci va juste améliorer l’expérience de jeu de vos joueurs quand le nombre de tick par seconde est bas, cela n’améliorera pas les performances. Un ensemble limité d’entités, les tile entities, et le temps du monde utiliseront le temps réel au lieu des ticks pour se mettre à jour.

modules {
    # Use real (wall) time instead of ticks as much as possible
    realtime=false
}

Un exemple de ceci sont les bébés animaux. Normalement, ils prennent 20 minutes pour devenir adulte. Cependant, si le serveur lagge, chaque animal recevra moins de ticks, augmentant donc le temps qu’il prennent pour grandir. Ce paramètre met à jour certaines logiques pour utiliser le temps réel d’une horloge qui s’est écoulé, plutôt que le nombre de ticks. Cela s’applique également au cassage des blocs, donc plus de « casser les blocs plusieurs fois ».