Retour à la leçon
Mission

Mission : la file de construction qui ralentit le serveur

Identifier pourquoi une file d'actions de construction devient de plus en plus lente et la remplacer par une implémentation efficace.

Contexte

Un système de construction RP traite les actions des joueurs dans l'ordre où elles arrivent, avec ce code :

lua
local buildQueue = {}

local function enqueue(action)
  table.insert(buildQueue, action)
end

local function processNext()
  local action = table.remove(buildQueue, 1)
  return action
end

Sur un petit serveur de test, tout semble fluide. Une fois en production avec des centaines d'actions accumulées dans la file en période de rush, les administrateurs remarquent que processNext() devient de plus en plus lent à mesure que la file grossit, provoquant des lags perceptibles.