Retour à la leçonMission
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
endSur 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.