https://www.reddit.com/r/SimulationTheory/comments/1lnne2e/gravitational_time_dilation_vs_simulation_tick/
Cette question a-t-elle déjà été abordée ?
Il est bien connu que le temps est plus lent à proximité de la gravité (masse importante) que loin de la gravité (masse faible).
https://en.m.wikipedia.org/wiki/Gravitational_time_dilation
Il est également bien connu que toutes les simulations nécessitent beaucoup plus de calculs lorsque de nombreux objets sont proches les uns des autres que lorsqu'ils sont éloignés les uns des autres.
Certaines simulations dilatent même délibérément le temps (c'est-à-dire la vitesse de la simulation) pour tenir compte de ce phénomène :
https://www.eveonline.com/news/view/introducing-time-dilation-tidi
Donc le temps est plus lent près des planètes parce que la simulation met plus de temps à traiter l'interaction de la matière ? 🤔
On dit souvent que la guerre du lag ne peut pas être gagnée parce que nos joueurs peuvent toujours apporter un vaisseau de plus. C'est fondamentalement vrai, et il est important d'accepter cette vérité dans le cadre du travail que nous effectuons ici, au sein de la Team Gridlock. En plus du travail d'optimisation que nous effectuons, nous nous attaquons également aux problèmes de dégradation, de sorte que lorsque le serveur est surchargé, la situation est gérée de manière raisonnable. C'est le sujet de ce blog aujourd'hui. Mais pour comprendre où nous allons, il faut d'abord savoir où nous sommes. Actuellement, lorsqu'un serveur est surchargé, il n'existe pas de mécanisme explicite pour gérer la situation. Les mêmes mécanismes que ceux qui régissent les opérations normales continuent de fonctionner à leur manière. Il en résulte des comportements intéressants, mais je dois définir certains termes avant d'aller plus loin.
Des Tasklets, des Schedulers et du Yielding
Les serveurs d'EVE Online existent fondamentalement pour exécuter un ensemble de tâches - qu'il s'agisse de répondre à un paquet entrant d'un client ou d'une tâche qui maintient l'état des modules ou, bien, presque tout. Ces tâches sont appelées tasklets pour des raisons que vous n'avez pas besoin de connaître aujourd'hui. Mais comme il s'agit ici d'un ordinateur, une seule tasklet peut être en cours d'exécution à un moment donné et un logiciel doit exister pour décider de quelle tasklet il s'agit. C'est ce qu'on appelle un planificateur.
Il existe de nombreux styles et saveurs d'ordonnanceurs. Celui qui fait fonctionner les tasklets d'EVE Online est assez simple : il s'agit d'un planificateur round-robin, multitâche coopératif. Le fait qu'il s'agisse d'un round-robin signifie simplement que chaque tasklet aura une chance de s'exécuter avant qu'une autre tasklet n'ait deux chances. Il n'y a pas de priorité ou de traitement spécial ici - c'est très équitable dans ce sens ; tout le monde a son tour. Le multitâche coopératif signifie qu'aucune tasklet ne sera interrompue de l'extérieur pendant son exécution. Une tasklet s'exécutera jusqu'à ce qu'elle soit terminée ou jusqu'à ce qu'elle exécute une routine spéciale qui signale au planificateur qu'elle aimerait laisser son tour à tous les autres. C'est ce qu'on appelle le "yielding".