Profils personnalisés
Un profil personnalisé est un fichier YAML qui décrit un run de votre cru. Un profil de benchmark dit quels tests lancer, dans quel ordre et avec quels paramètres. Un profil de stress limit choisit les charges à pousser jusqu'au point de rupture, et la manière de le faire.
Les profils se trouvent dans plugins/VoxelBench/custom_benchmarks/ et se lancent avec /bench custom run <nom>.
Cette page en est la référence complète ; Benchmarks en donne un aperçu. Ne confondez pas les profils personnalisés avec benchmark-mode: custom dans config.yml, qui change ce que lance /bench start (voir Benchmarks).
Démarrage rapide
/bench custom list
/bench custom info standard
/bench custom run standard
/bench custom listaffiche les profils chargés, marqués[STD](benchmark) ou[STRESS](stress limit)./bench custom info standardaffiche le détail d'un profil et ses étapes./bench custom run standardle lance. La commande doit être tapée en jeu par un joueur, et le serveur doit être lié à un compte voxelbench.com, même si le profil n'envoie rien.- Pour écrire le vôtre, copiez
standard.ymlenmon-profil.ymldans le même dossier et modifiez la copie : donnez-lui son proprename:, puis changez les étapes. Lancez/bench custom reload, puis/bench custom run mon-profil. Inutile de redémarrer.
Profils fournis
VoxelBench fournit neuf profils :
| Fichier | Type | Contenu |
|---|---|---|
example.yml | benchmark | Test rapide en 7 étapes : disque, mémoire, réseau, chunkLoading, hopper, singleCoreMax, multiCore |
standard.yml | benchmark | Les 16 tests de /bench start avec les mêmes charges, comme point de départ à copier. Ses runs ne sont pas notés et ne se comparent pas à ceux de /bench start |
showcase.yml | benchmark | Les 26 tests intégrés, chaque paramètre écrit et commenté. Il se charge comme n'importe quel profil, mais c'est une référence où copier des blocs, pas un benchmark à lancer |
free-host.yml | benchmark | Les 16 tests du standard avec des charges bien plus légères, pour les hébergements gratuits. Il rappelle que beaucoup d'hébergeurs gratuits interdisent les benchmarks dans leurs conditions d'utilisation |
low-memory.yml | benchmark | Les 16 tests du standard, allégés pour les serveurs avec 2 à 4 Go de heap |
hopper-heavy.yml | benchmark | Le test hopper seul, à 100 lignes par zone : dix fois la charge du standard. Lourd : lancez-le sur un serveur de test ou en heures creuses |
stress-redstone.yml | stresslimit | Redstone uniquement, de 400 jusqu'à un plafond souple de 8 000, avec une montée fine et une recherche précise au point de rupture |
stress-monster.yml | stresslimit | Six types de stress (tous sauf villagers) avec leurs bornes nominales, une montée agressive et 15 minutes par type |
stress-freehost.yml | stresslimit | Mobs, redstone et hoppers avec des plafonds souples bas (4 000, 2 000 et 2 000), des seuils de rupture plus stricts (TPS 19, MSPT 45 ms), des paliers de 8 secondes et 2 zones |
Mises à jour et profils supprimés
- VoxelBench copie chaque profil fourni une seule fois : tous à la création du dossier, puis un profil ajouté par une version ultérieure (comme
hopper-heavy.yml) au premier démarrage après la mise à jour. - Le fichier
.bundled-profilesdu dossier liste les profils déjà copiés : un profil fourni que vous supprimez ne revient donc pas. Pour en retrouver un, retirez son nom de.bundled-profileset lancez/bench custom reload. - À chaque lecture du dossier (au démarrage et au rechargement), une copie identique à une ancienne version d'un profil fourni, fins de ligne mises à part, est remplacée par la version courante, et la console le signale. Une copie que vous avez modifiée, ne serait-ce que d'un caractère, n'est jamais touchée. Pour garder vos modifications tout en recevant les mises à jour de l'original, travaillez sur une copie sous un autre nom.
Fichiers de profil
- Un profil est un fichier
.ymlou.yamlplacé dansplugins/VoxelBench/custom_benchmarks/. - Son nom est celui du fichier, sans l'extension et en minuscules :
Mon-Profil.ymlse lance avec/bench custom run mon-profil. Deux fichiers dont les noms ne diffèrent que par la casse ou l'extension portent le même nom, et un seul des deux est chargé. - Un même dossier accueille les deux types. La clé
kind:, au premier niveau, les distingue :benchmark(par défaut) oustresslimit. Sanskind:, un fichier qui a une sectionstress:et pas de sectiontests:est un profil de stress limit ; tout autre fichier est un profil de benchmark. Toute valeur dekind:autre questresslimit(quelle que soit la casse) est lue commebenchmark.
Clés communes
Ces clés sont facultatives et fonctionnent de la même façon dans les deux types :
| Clé | Défaut | Rôle |
|---|---|---|
kind | Voir ci-dessus | benchmark ou stresslimit |
name | Le nom du fichier | Nom affiché par list et info et sur voxelbench.com |
description | Vide | Affichée sous le profil dans list, et par info |
author | Vide | Affiché par info et sur voxelbench.com |
version | 1 | Un nombre entier : votre propre numéro de révision |
tags | Aucun | Une liste de mots, par exemple [redstone, fermes] |
submit | false | true envoie le rapport à voxelbench.com à la fin du run (voir Sur voxelbench.com) |
Les autres clés de premier niveau sont ignorées.
Profils de benchmark
kind: benchmark # facultatif : benchmark est le défaut
name: "Redstone et chunks"
description: "Horloges redstone, puis génération de chunks"
author: "VotreNom"
version: 1
tags: [redstone, chunks]
submit: false # true = envoyer le rapport à voxelbench.com
options:
auto-temp-world: true # false = tourner dans le monde principal (voir Monde de test)
tests:
- id: disk
params:
threads: 4
fileSizeMb: 1024
- id: redstone
params:
pistonCount: 3200
durationSeconds: 60
- id: chunkLoading
params:
chunksToLoad: 1000
dispersedZones: 8 # plus de 1 = les 8 zones du run
- id: worldSave # aucun paramètre
- id: singleCoreBenchmark
params:
durationSeconds: 30
options: n'a qu'un réglage, auto-temp-world (voir Monde de test). Les autres clés placées sous options: n'ont aucun effet, mais elles comptent dans l'empreinte du profil.
Étapes
tests:est la liste des étapes. Chaque entrée est une table avec unid:et, au besoin, desparams:.- Les étapes s'exécutent dans l'ordre où elles sont écrites, l'une après l'autre. Les profils fournis placent les tests matériels en premier, les tests gameplay ensuite et les tests CPU en dernier : c'est l'ordre qui donne les mesures les plus fiables.
id:est un identifiant de test : l'un des 26 tests intégrés, ou un test ajouté par une extension. La casse,-et_ne comptent pas :chunkLoading,chunk-loadingetCHUNK_LOADINGdésignent le même test./bench test listliste tous les tests que connaît le serveur, ceux des extensions compris.- Les noms courts que
/bench testaccepte aussi (lighting,collision,tileentity,villager) ne sont pas des identifiants de test : dans un profil, écrivezlightingUpdate,entityCollision,tickingTileEntityetvillagerTrading.
Paramètres
Dans un profil, chaque paramètre s'écrit par son nom sous params:, alors que /bench test prend pour beaucoup de tests des valeurs simples dans un ordre fixe (voir Commandes). Un paramètre omis prend sa valeur par défaut. Un nombre hors de la plage autorisée est ramené à la borne la plus proche au lancement du run, avec un avertissement.
| Test | Paramètres : défaut (plage autorisée) |
|---|---|
disk | threads 4 (1–32), queueDepth 8 (1–64), fileSizeMb 512 (16–8192), randomOps 200 (10–5000), passes 3 (1–20) |
network | Aucun |
memory | tableSize 512 (16–4096), iterations 75000 (1000–1000000), passes 3 (1–20) |
multiCore | threads 100 (1–1000), iterations 100000 (1000–10000000), kernel int |
singleCoreBenchmark | durationSeconds 10 (3–60), kernel int |
singleCoreMax | operations 50000000 (1000000–1000000000), passes 3 (1–20), kernel int |
chunkLoading | chunksToLoad 200 (10–5000)*, dispersedZones 1 (1–10) |
mobSpawn | mobCount 300 (10–5000)*, dispersedZones 1 (1–10) |
hopper | parallelLines 50 (1–500), dispersedZones 1 (1–10) |
explosion | tntCount 100 (1–1000)*, dispersedZones 1 (1–10) |
lightingUpdate | totalUpdates 400 (10–10000), dispersedZones 1 (1–10) |
worldSave | Aucun |
redstone | pistonCount 1000 (10–5000), durationSeconds 15 (5–120) |
blockPhysics | fallingBlockCount 12000 (100–50000), spawnFrequencyTicks 1 (1–20) |
chunkTicking | chunks 200 (10–1000), tickSpeed 3 (1–256), durationSeconds 60 (10–300) |
entityCollision | items 500 (10–5000), entities 200 (10–2000), durationSeconds 30 (10–120) |
tickingTileEntity | total 5000 (100–20000), type ALL, dispersedZones 1 (1–10), durationSeconds 15 (5–120) |
mobAI | villagerCount 100 (50–3000), houseCount 20 (5–500), hostileCount 200 (10–2000), phase1Seconds 10 (5–60), phase2Seconds 15 (5–120) |
mobPathfinding | totalMobs 200 (10–2000), durationSeconds 30 (10–120) |
villagerTrading | villagers 100 (20–2000), houses 20 (5–200), durationSeconds 60 (30–300), zombies 50 (0–500) |
boneMealGrowth | saplingCount 200 (10–2000), cropCount 500 (10–5000), durationSeconds 20 (5–120) |
liquidPhysics | waterSourceCount 100 (1–1000), lavaSourceCount 50 (0–1000), durationSeconds 20 (5–120) |
combatSimulation | zombieCount 60 (0–500), skeletonCount 80 (0–500), pillagerCount 40 (0–500), durationSeconds 30 (10–120) |
projectileStorm | projectilesPerWave 100 (10–2000), durationSeconds 20 (5–120) |
entityCramming | totalEntities 500 (10–5000), durationSeconds 20 (5–120) |
playerWorldLoad | playerCount 10 (1–100) |
* Plafonné aussi par config.yml, sans avertissement : voir Réglages lus dans config.yml.
kernel(tests CPU) vautint,float,memoryoubranch. Toute autre valeur lanceint, sans avertissement.type(tickingTileEntity) vautFURNACE,HOPPER,SPAWNERouALL. Toute autre valeur lanceALL, avec un avertissement.- Écrivez les nombres en entiers simples (
50000000). Une valeur qui n'est pas un nombre est remplacée par le défaut, avec un avertissement. - Pour
chunkLoading,mobSpawn,hopperetexplosion,dispersedZonesne choisit qu'entre une zone et huit. Chaque run de profil dispose 8 zones de test éloignées les unes des autres, comme/bench start. Un tel test avecdispersedZones: 1, ou sansdispersedZones, tourne dans une seule zone ; avec une valeur de 2 à 10, il tourne dans les 8 zones du run. Écrivez8pour le rendre explicite.lightingUpdateettickingTileEntityutilisent le nombre de zones que vous écrivez. chunkLoadingreste sous un plafond mémoire : 30 % du tas maximal, à environ 50 Ko par chunk, partagés entre les zones que le test parcourt réellement (les 8 zones du run pour toute valeur dedispersedZonessupérieure à 1, une seule zone sinon), sans jamais descendre sous 200 chunks par zone. Avec 8 zones, chaque zone reçoit au plus 0,75 chunk par Mo de tas maximal :chunksToLoad: 1000est réduit sur un tas de moins de 1 330 Mo environ. Avant VoxelBench 2.0.3, le plafond était divisé par la valeur dedispersedZonesécrite dans le profil : un profil endispersedZones: 2pouvait charger jusqu'à quatre fois le plafond sur un petit tas, et ses anciens runs ne se comparent pas aux nouveaux sur un tel serveur.- Les tests ajoutés par des extensions déclarent leurs propres paramètres : reportez-vous à la documentation de l'extension.
Le profil fourni showcase.yml reprend chaque paramètre avec un court commentaire, et standard.yml contient les valeurs de /bench start.
Monde de test
Un profil de benchmark choisit son monde ainsi :
- Un monde épinglé avec
/bench world setest toujours utilisé, s'il est chargé. S'il ne l'est pas, vous recevez un avertissement et les règles suivantes s'appliquent. - Sinon, quand
options.auto-temp-worldvauttrue(sa valeur par défaut est celle debenchmark.auto-temp-worlddansconfig.yml), le run crée un monde plat temporaire,voxelbench_temp_<horodatage>, et le supprime à la fin. Cela n'arrive que sibenchmark.auto-temp-worldvaut aussitruedansconfig.yml: un profil peut désactiver le monde temporaire, pas l'activer. Si le monde ne peut pas être créé, le run se replie sur le monde principal et la console le signale. - Sinon, les tests tournent dans le monde principal du serveur (le premier qu'il charge) : ils y construisent et y vident leurs zones de test.
playerWorldLoad ne tourne que dans le monde épinglé ou dans un monde voxelbench_*. Partout ailleurs, l'étape est sautée avec la raison benchmark_world_required et le reste du run continue. Voir aussi Configuration et Benchmarks.
Réglages lus dans config.yml
Un profil ne contient pas tous les réglages de ses tests. Quelques-uns sont lus dans le config.yml du serveur à chaque run (voir Configuration) :
benchmark-tests.chunk-loading.limits,benchmark-tests.mob-spawn.limitsetbenchmark-tests.explosion.limitsplafonnentchunksToLoad,mobCountettntCount, sans avertissement. Avec leconfig.ymllivré, cela fait au plus 5 000 chunks, 1 000 mobs et 200 TNT, même si le tableau ci-dessus autorise davantage.benchmark-tests.chunk-loading.adaptive(régulation de la génération de chunks),benchmark-tests.hopper.hopper-chain-length,benchmark-tests.mob-spawn.duration-secondsetbenchmark-tests.explosion.raise-host-tnt-quotas'appliquent aussi.benchmark-tests.hopper.limitsne s'applique pas : il ne borne que la commande/bench test hopper. Un profil exécute les lignes qu'il demande, jusqu'à 500 par zone.
Deux serveurs qui lancent le même profil n'exécutent donc la même charge que si ces réglages sont identiques.
Profils de stress limit
Un profil de stress limit lance le mode Stress Limit avec votre propre recette : quels types de stress pousser, à partir de quelle charge, jusqu'à quel plafond, et à partir de quand un palier est considéré comme rompu.
kind: stresslimit
name: "Contrôle des fermes"
description: "Hoppers et mobs, seuil de rupture plus strict"
author: "VotreNom"
version: 1
tags: [fermes]
submit: false
stress:
types:
- id: hoppers
base: 100 # charge de départ
max: 4000 # plafond souple
- id: mobs # ni base ni max : les bornes nominales du type
thresholds:
tpsBreak: 19.0
msptBreak: 50.0
timing:
palierDurationSec: 12
zones: 2
stress.types est la seule clé obligatoire. Chaque entrée est une table avec un id:, parmi mobs, chunks, hoppers, tnt, redstone, entities et villagers (voir Types de stress). Les types s'exécutent dans l'ordre où ils sont écrits ; un type cité deux fois ne s'exécute qu'une fois.
baseest la charge de départ etmaxle plafond souple. Si vous en omettez un, il garde la valeur nominale du type. Unebasesupérieure àmaxest ramenée àmax.- Le plafond souple continue de monter tant que le serveur a de la marge, jusqu'au plafond dur du type, égal à cinq fois son plafond nominal. Un
maxau-delà de ce plafond y est ramené : aucun profil ne peut le relever.
Toutes les autres clés sont facultatives et gardent la valeur qu'utilise /bench stresslimit :
| Clé | Défaut | Effet |
|---|---|---|
stress.thresholds.tpsBreak | 18.0 | Un palier rompt quand le TPS moyen passe sous cette valeur |
stress.thresholds.msptBreak | 55.0 | Un palier rompt quand le MSPT moyen dépasse cette valeur, en millisecondes |
stress.ramp.stepMin | 1.15 | Multiplicateur de charge près du point de rupture |
stress.ramp.stepMax | 2.5 | Multiplicateur de charge quand le serveur est au repos |
stress.ramp.curve | 2.0 | Au-dessus de 1, les grands pas durent plus longtemps tant que le serveur a de la marge |
stress.ramp.plateauBoost | true | Après trois paliers presque au repos d'affilée, chaque palier presque au repos de plus multiplie le pas par 1,5, de façon cumulative ; false coupe ce mécanisme. Compté dans l'empreinte du profil et enregistré dans son rapport. Avant VoxelBench 2.0.3, le réglage était sans effet |
stress.refine.targetPrecision | 250 | La recherche au point de rupture s'arrête quand l'écart descend à ce nombre d'unités |
stress.refine.maxIterations | 8 | Nombre maximal d'essais de cette recherche |
stress.timing.palierDurationSec | 10 | Secondes par palier |
stress.timing.maxDurationMinutes | 10 | Durée maximale par type |
stress.timing.earlySkip | true | Autorise un palier à finir plus tôt quand le serveur est nettement à l'aise |
stress.zones | 4 | Nombre de zones de test |
Les seuils décident du résultat ; la montée, la recherche et les durées décident de la vitesse et de la précision avec lesquelles on le trouve. VoxelBench ne vérifie pas la plage de ces nombres : restez proche des valeurs des profils fournis. Le fonctionnement des paliers, de la montée et de la recherche est expliqué dans Mode Stress Limit.
Un profil de stress limit n'a pas d'options:. Il utilise le monde épinglé, sinon un monde temporaire si benchmark.auto-temp-world vaut true, sinon le monde principal, comme /bench stresslimit. Il part de la mémoire du démarrage à chaud et la met à jour, comme un run stress limit complet. Contrairement à /bench stresslimit, il démarre sans demander de confirmation.
Commandes
| Commande | Description |
|---|---|
/bench custom list (alias ls) | Lister les profils chargés : type, nom, nom affiché, nombre d'étapes ou de types, et s'il envoie son rapport |
/bench custom info <nom> (alias show) | Afficher un profil : nom affiché, description, auteur, version, tags, submit, les 12 premiers caractères de son empreinte, puis ses étapes et leurs paramètres tels qu'écrits, ou ses types de stress et ses seuils de rupture |
/bench custom run <nom> [force] [warmup] [<runs>] | Lancer un profil |
/bench custom reload | Relire le dossier : fichiers nouveaux, modifiés et supprimés, ainsi que les profils fournis (voir plus haut). Indique combien de profils sont chargés |
Toutes les commandes /bench custom exigent voxelbench.custom ou voxelbench.start (réservés aux opérateurs par défaut) ; reload exige aussi voxelbench.reload, et lancer un profil de stress limit exige aussi voxelbench.stresslimit, comme /bench stresslimit. /bench reload ne relit pas les profils. L'auto-complétion propose les noms des profils chargés après info, et après run seulement les profils que vous pouvez lancer : les profils de stress limit uniquement avec voxelbench.stresslimit. La liste des profils disponibles affichée après un nom inconnu suit la même règle ; list et info montrent tous les profils.
/bench custom run :
- doit être tapée par un joueur en jeu, pas depuis la console ;
- exige un serveur lié, même quand le profil a
submit: false; - est refusée pendant un autre test ou run, et
/bench stopl'arrête ; - partage le cooldown de
/bench start(voir Configuration).forceignore le cooldown si vous avezvoxelbench.start.force; - démarre aussitôt, sans confirmation ;
- n'exécute qu'une itération :
warmupet un nombre de runs sont acceptés, mais un message vous indique qu'ils ne s'appliquent pas aux profils.
Un run est enregistré dans vos rapports locaux (/bench reports), parmi les benchmarks standard pour un profil de benchmark et parmi les rapports Stress Limit pour un profil de stress limit, sauf si config.yml désactive ce type de rapport. Voir Rapports.
Voir aussi Commandes.
Depuis l'interface
/bench gui, puis l'onglet Tests, puis Profils personnalisés, liste les profils chargés que vous pouvez lancer : une étoile du Nether signale un profil de benchmark, de la TNT un profil de stress limit (affiché seulement avec voxelbench.stresslimit). L'écran exige voxelbench.custom ou voxelbench.start. Un clic sur un profil lance /bench custom run <nom>, avec les mêmes contrôles. Le bouton d'actualisation lance /bench custom reload, qui exige voxelbench.reload.
Validation
Au chargement
VoxelBench lit le dossier au démarrage, sur /bench custom reload et avec le bouton d'actualisation de l'interface. Un fichier qui pose problème n'apparaît pas dans /bench custom list, et la console dit pourquoi :
| Problème | Résultat |
|---|---|
| Le fichier n'est pas du YAML valide | Le serveur journalise l'erreur de lecture, et le profil est ignoré |
Un profil de benchmark n'a pas de liste tests:, ou une liste vide | Ignoré |
Une étape n'a pas d'id: | Tout le profil est rejeté |
| Un identifiant de test est inconnu | Tout le profil est rejeté ; le message liste les identifiants valides |
Un profil de stress limit n'a pas de liste stress.types | Ignoré |
Un type de stress n'a pas d'id:, ou un id: inconnu | Tout le profil est rejeté ; le message liste les types valides |
Les paramètres ne sont pas vérifiés à ce stade : /bench custom info les affiche tels qu'ils sont écrits.
Les tests des extensions ne sont connus qu'une fois leur plugin démarré, c'est-à-dire après VoxelBench. Un profil qui en utilise un est donc rejeté au démarrage du serveur : lancez /bench custom reload une fois le serveur démarré.
Un profil de benchmark dont l'étape hopper demande plus de lignes que benchmark-tests.hopper.limits.max reçoit aussi un avertissement dans la console au chargement (sauf le profil fourni hopper-heavy.yml) : avant VoxelBench 2.0.0, un tel profil exécutait sans le dire au plus ce nombre de lignes (10 par défaut), ses anciens résultats ne se comparent donc pas aux nouveaux.
Au lancement d'un run
Toutes les étapes sont préparées avant le premier test :
- Un nombre hors de sa plage autorisée y est ramené, avec un avertissement dans le chat et dans la console, par exemple
mobCount=9000 clamped to 5000 (allowed range: 10..5000). Le run continue. - Une valeur qui n'est pas un nombre est remplacée par le défaut, avec un avertissement.
- Un nom de paramètre que le test ne connaît pas est ignoré, sans avertissement : le test tourne avec sa valeur par défaut.
- Si un test n'est plus disponible (une extension retirée après le chargement du profil), le run ne démarre pas, et un message nomme le test.
Partager un profil
Un profil tient en un seul fichier, autonome. Pour le partager, envoyez le fichier : l'autre opérateur le dépose dans plugins/VoxelBench/custom_benchmarks/ et lance /bench custom reload. Sur son serveur, le nom du fichier devient le nom du profil.
Empreinte du profil
Quand VoxelBench charge un profil, il calcule une empreinte SHA-256 de sa recette. /bench custom info en affiche les 12 premiers caractères, et un rapport envoyé à voxelbench.com la porte en entier : deux runs de même empreinte ont suivi la même recette.
Pour un profil de benchmark, l'empreinte couvre :
- le type,
name,description,author,version,tagsetsubmit; - toutes les clés placées sous
options:; - les étapes, dans l'ordre : chaque test, avec ses paramètres exactement tels qu'écrits.
Elle ne dépend pas du nom du fichier (sauf en l'absence de name:, puisque le nom du fichier devient alors le nom affiché), des commentaires, des lignes vides, de l'ordre des clés sous params: ou options:, de l'ordre des tags, ni de la façon d'écrire l'identifiant du test (chunk-loading et chunkLoading donnent la même empreinte). Un paramètre omis et le même paramètre écrit avec sa valeur par défaut donnent deux empreintes différentes, tout comme une valeur hors plage et la borne à laquelle elle est ramenée.
Pour un profil de stress limit, l'empreinte couvre les mêmes métadonnées, les types de stress dans l'ordre avec leurs bornes, et chaque réglage stress tel qu'il s'applique au run : un réglage omis et le même réglage écrit avec sa valeur par défaut donnent la même empreinte.
Toute autre modification, même de la description ou de submit, change l'empreinte, et fait donc un autre profil sur voxelbench.com. L'empreinte décrit la recette, pas le serveur : les résultats dépendent toujours de la machine et des réglages de config.yml cités dans Réglages lus dans config.yml.
Sur voxelbench.com
Avec submit: false, la valeur par défaut, rien n'est envoyé : le run reste seulement dans vos rapports locaux, où le rapport d'un profil de benchmark est marqué comme non envoyé.
Avec submit: true, un profil de benchmark envoie son rapport à la fin du run, et le chat en affiche le lien. Sur voxelbench.com, ce rapport :
- appartient au compte auquel votre serveur est lié, et il est d'abord privé. Vous pouvez le rendre non répertorié (visible par qui a le lien) ou de nouveau privé, mais jamais public ;
- n'a ni VoxelScore ni rang, et n'apparaît dans aucun classement ;
- affiche une carte Profil personnalisé : nom affiché, auteur, version, description, tags, les 12 premiers caractères de l'empreinte, et le nombre de runs envoyés à voxelbench.com avec la même empreinte.
La carte omet un champ trop long : nom de fichier au-delà de 64 caractères, nom affiché ou auteur au-delà de 255, description au-delà de 2 000, tag au-delà de 32. Seuls les 20 premiers tags sont gardés. Le run lui-même est bien enregistré. Pour les rapports des tests ajoutés par des extensions, voir Créer une extension.
Un profil de stress limit avec submit: true envoie lui aussi son rapport à la fin du run. voxelbench.com le traite comme celui d'un profil de benchmark : il appartient au compte lié, il est d'abord privé et peut devenir non répertorié, jamais public, et il n'a ni score ni rang et n'apparaît dans aucun classement, puisque ses seuils de rupture et sa montée sont ceux de l'auteur du profil.
Si votre offre voxelbench.com comprend l'auto-bench, une tâche d'auto-bench peut lancer un profil de benchmark de votre serveur par son nom. Ce nom ne doit alors contenir que des lettres, des chiffres, - et _, sur 64 caractères au plus. Un tel run est toujours envoyé, quelle que soit la valeur de submit. Les profils de stress limit ne peuvent pas être lancés de cette façon.
Pièges courants
- Un nom de paramètre mal orthographié est ignoré sans avertissement : le test tourne avec sa valeur par défaut. Comparez les noms qu'affiche
/bench custom infoau tableau des paramètres. - Une étape écrite
- diskau lieu de- id: diskest ignorée. Chaque étape doit être une table avec unid:. kind: stress-limitn'est paskind: stresslimit: toute autre valeur donne un profil de benchmark, ignoré ensuite faute detests:.- Un profil qui utilise un test d'extension disparaît après un redémarrage : lancez
/bench custom reloadune fois le serveur démarré. dispersedZones: 2ou4ne veut pas dire 2 ou 4 zones pourchunkLoading,mobSpawn,hopperetexplosion: toute valeur supérieure à 1 désigne les 8 zones du run.options.auto-temp-world: truene peut pas créer de monde temporaire quandbenchmark.auto-temp-worldvautfalsedansconfig.yml: le run utilise le monde principal.mobCountettntCounts'arrêtent aux limites deconfig.yml(1 000 mobs et 200 TNT par défaut), sans avertissement.- Un nouveau fichier de profil n'a aucun effet avant
/bench custom reloadou un redémarrage du serveur. - Un profil de stress limit absent de l'autocomplétion ou de l'interface n'est pas cassé : le lancer exige
voxelbench.stresslimit, et il n'est proposé qu'aux joueurs qui l'ont./bench custom listl'affiche.