methode de gestion de la ram d'une map ?

Anarchick

Le projet Btooom avance [2013->2022]!
9 Février 2012
108
10
130
28
FRANCE
aeim.deviantart.com
Bonjour, je voudrais un renseignement sur comment se rempli la ram sur Spigot en fonction de la dispersion des joueurs sur une ou plusieurs maps,

J'ai 4 maps chargé en même temps :
- map de 111 Mo (Map de jeu qui se régénère en fin de partie grâce à InstantReset.jar )
- 24 Mo (Map généré avec CityWorld.jar)
- 6 Mo (PlotSquared)
- 17 Mo (Lobby)

Sachant que j'ai bloqué la génération de NOUVEAU chunks, ma question est :
Si tous les joueurs se dispersent et chargent TOUS les chunks de chaque map en même temps, la ram dédié à la gestion des mondes sera tel égal à 111+24+6+17=158Mo ou bien Elle sera supérieur ? (On ne prend pas en compte la ram dédié joueur et des plugins AUTRE QUE MultiWorld, CityWorld, PlotSquared et instantreset)

[Spigot 1.9.2 - LocalHost - Java 8 - java -Xmx3072M -jar spigot-1.9.2.jar]

Merci de vos réponses
 
Salut,

La section "Création et gestion de serveurs" est réservée aux tutoriels. Pour le support, il faut aller ici: http://minecraft.fr/forum/forums/support-serveur.33/
Je signale ton message à un modérateur (qui déplacera surement).
Concernant ta question, la RAM sera supérieure vu qu'il faut gérer les entités, les interactions et les éventuels plugins.


Cordialement,
Detobel36
 
Salut,

La section "Création et gestion de serveurs" est réservée aux tutoriels. Pour le support, il faut aller ici: http://minecraft.fr/forum/forums/support-serveur.33/
Je signale ton message à un modérateur (qui déplacera surement).
Concernant ta question, la RAM sera supérieure vu qu'il faut gérer les entités, les interactions et les éventuels plugins.


Cordialement,
Detobel36

ok merci,
je suis bien d'accord qu'elle sera supérieure en total mais j'ai précisé uniquement sur la gestion ram des maps en gros comme si sur mon serveur je n'avait que les plugins cité et pas d'autres.
Il a été prouvé que un seul joueur connecté consomme environ 200Mo et que si un autre joueur le rejoint et reste à côté de lui il n'y a pas beaucoup plus de ram utilisé car les chunks sont déjà chargé dans la ram serveur.
Mais 1Mo de map est il égal à 1Mo de ram ?
Si on fait le test sans aucun joueur sur le serveur mais qu'on demande au serveur de charger tous les chunks déjà créer auparavant (et pas des nouveaux) je pense que ce serais plus révélateur pour répondre à ma question initial.
 
Salut,

Mais 1Mo de map est il égal à 1Mo de ram ?
Non puis-ce qu'il y a les entités...

En fait tu essayes de faire des constations sur des chiffres trop petit. Contrairement à d'autres langages, Java ne supprime les objets (objet au terme informatique) que lorsque le "garbage collector" s'active. Une sorte de programme à l'intérieur de Java qui regarde si on a encore besoin d'un élément ou non.
Cela signifie que ta RAM va augmenter, augmenter, augmenter et qu'à un moment le garbage collector va passer et pouf ça va diminuer.

Un plugin fait en général plus que simplement charger la map est c'est tout. Il écoute les événements, lance des tâches (un message automatique, vérification de mise à jour, ...) et stockes des choses. Toutes ces actions prennent de la mémoire RAM.
Après ça il y a aussi la VM Java qui va prendre de la RAM.

Ensuite:
Il a été prouvé que un seul joueur connecté consomme environ 200Mo
Prouvé suivit de "environ"... C'est pas très scientifique comme démarche :P

Je ne sais pas quel est le but de toutes ces questions ? Tu veux te convaincre que 1Go de RAM est assez pour ton serveur ? :P
Si tu veux être large compte 1Go pour 10 joueurs simultané (plugins compris) avec un nombre de map raisonnable (5, 6 maps max).



Cordialement,
Detobel36
 
  • J'aime
Reactions: TdT3ch et robin4002
Prouvé suivit de "environ"... C'est pas très scientifique comme démarche :p
"Environ" car les personne ayant fait les test avait des plugins sur leur serveurs et que je suppose que spigot 1.2 ne consomme pas pareil que Spigot 1.9

Ces questions c'est parce que je code sous Skript et que j'ai observer des faits intéressant au niveau de l'utilisation de ma ram.
Je n’utilise presque aucun plugin autre que ceux cité plus haut et mes Skripts, je sais donc ce que j'ai codé et que c'est suffisamment bien codé pour savoir que mes skript nécessite un CPU et RAM négligeable (j'évite les "on any move", "every ticks" et tous ces autres truc hyper gourmand en ressources).

Je me posais ces question par curiosité, je trouvait étrange que mes maps soient si peu lourde alors que j'ai souvenir qu'il y a quelques années j'avais une map de 1.3 Go !! Puis je savais que plusieurs joueurs au même endroit ne consomme pas beaucoup plus de ram au niveau du chargement des chunks, je me suis alors demander en toute logique si le poid d'une map était égal à sa mémoire ram alloué. (ce qui semblerai logique dans un monde parfait sans ram accumulé inutilement)

J'ai déjà entendu ce truc "garbage collector" , as t'il un défaut qui fait qu'il n'est pas actif toutes les secondes afin de purger de la ram ?

(merci pour tes réponses)
 
Salut,

J'ai déjà entendu ce truc "garbage collector" , as t'il un défaut qui fait qu'il n'est pas actif toutes les secondes afin de purger de la ram ?
Lancer le garbage collector à un coût, on ne le fait pas tous les ticks :P

Il me semble (informations à vérifier) qu'il se lance automatiquement après un certains laps de temps (il me semble que c'est paramétrable dans la VM Java). Mais il se lance surtout lorsque l'on a plus de RAM disponible ;)

Skript n'est (par définition) pas très performant... Mieux vaut utiliser un plugin (qui ne sera pas spécialement très performant mais qui pourra être adapter pour améliorer les performances).


Cordialement,
Detobel36
 
Salut,
je me suis alors demander en toute logique si le poid d'une map était égal à sa mémoire ram alloué.

Non, aucun rapport entre les deux.
La taille d'une map sur le disque dur dépend du nombre de chunk qui ont été chargé mais aussi de leur contenu. Dans la sauvegarde, un bloc de terre prendra le même place qu'un bloc de pierre. Par contre les fours, les coffres et d'autres blocs prennent plus de place car ils ont un tile entity associé dans lequel d'autres données sont sauvegarder (le contenu du coffre, la progression de la cuisson, etc ...).
De plus les maps sont dans un format compressé. Ainsi une map constitué uniquement du même bloc de façon régulière (par exemple que de la stone du niveau 0 à 128 et que de l'air ensuite) prendra moins de place qu'une map normal car la compression sera meilleur.

La proportion de ram prise par la map dépend du nombre de chunks chargés. La ram n'est pas compressé (car sinon il faudrait la décompresser avant de lire le contenu ce qui ralentirai le jeu/serveur et serait plus gourmand en cpu).