0Pricing
Lua Academy · Leçon

Mesurer des durées

Mesurez la durée d’exécution du code.

Mesurer des durées est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.

Chronométrer votre code

Vous voulez parfois savoir combien de temps une tâche a pris : charger un fichier, exécuter une boucle ou construire un niveau. Mesurer les durées vous aide à repérer les parties lentes et à les améliorer.

Lua vous fournit deux outils pour cela : os.time pour une mesure approximative et os.clock pour une mesure précise.

Le principe du chronomètre

L'idée de base est simple : relevez l'heure avant le travail, effectuez le travail, relevez l'heure après, puis soustrayez les deux valeurs.

La différence correspond à la durée écoulée. Ce modèle démarrage-arrêt est au cœur de tout chronomètre.

local start = os.time()
-- work happens here
local stop = os.time()
print("Elapsed:", stop - start)

os.time est approximatif

os.time compte des secondes entières et ne peut donc pas détecter ce qui dure moins d'une seconde. Deux appels rapides successifs indiquent souvent une différence de zéro.

Pour les tâches courtes, vous avez besoin d'une horloge plus précise : c'est là qu'intervient os.clock.

local a = os.time()
local b = os.time()
print(b - a)

Découvrez os.clock

os.clock() renvoie un nombre de secondes, mais sous forme décimale, avec une partie fractionnaire. Il mesure avec une grande précision le temps processeur utilisé par votre programme.

Il est donc idéal pour chronométrer des opérations rapides, jusqu'à des fractions de seconde.

print(os.clock())

Mesurer une boucle

Encadrez une boucle entre deux relevés de os.clock pour voir combien de temps elle s'est exécutée. La différence correspond au temps écoulé, en secondes.

Les boucles plus longues prennent davantage de temps : c'est donc un moyen rapide de comparer différentes approches.

local t1 = os.clock()
local sum = 0
for i = 1, 1000000 do sum = sum + i end
local t2 = os.clock()
print("Took", t2 - t1, "seconds")

Mettre le résultat en forme

Un long nombre décimal est difficile à lire ; utilisez donc string.format pour afficher un nombre de décimales bien présenté.

Ici, %.3f affiche trois chiffres après le point, ce qui fournit une précision de l'ordre de la milliseconde.

local t1 = os.clock()
for i = 1, 500000 do end
local elapsed = os.clock() - t1
print(string.format("%.3f seconds", elapsed))

os.time ou os.clock

Choisissez l'outil adapté. Utilisez os.time pour les durées de la vie courante, par exemple pour savoir « combien de secondes se sont écoulées depuis la connexion de l'utilisateur ».

Utilisez os.clock pour mesurer les performances du code, car il est précis et suit le temps processeur plutôt que le temps civil.

Une fonction de chronométrage réutilisable

Vous pouvez encapsuler ce modèle dans une fonction. Elle exécute une fonction donnée, la chronomètre et affiche le résultat.

Votre logique de chronométrage reste ainsi regroupée au même endroit et facile à réutiliser.

local function timeIt(fn)
  local s = os.clock()
  fn()
  print(string.format("%.4f s", os.clock() - s))
end
timeIt(function() for i=1,100000 do end end)

Écart sur plusieurs heures

Pour les longs écarts de la vie courante, os.difftime appliqué à deux valeurs de os.time est la solution la plus claire. Il renvoie la durée en secondes.

Divisez par 60 pour obtenir des minutes ou par 3600 pour obtenir des heures et présenter le résultat clairement.

local started = os.time({year=2025, month=1, day=1, hour=9})
local ended = os.time({year=2025, month=1, day=1, hour=17})
local hours = os.difftime(ended, started) / 3600
print(hours, "hours")

Afficher les minutes et les secondes

Pour présenter une durée en minutes et en secondes, utilisez la division entière et l'opérateur modulo.

// donne le nombre de minutes entières et % donne les secondes restantes.

local total = 145
local mins = total // 60
local secs = total % 60
print(string.format("%d:%02d", mins, secs))

Calcul simple d'un compte à rebours

Combinez ces idées pour afficher le temps restant. Soustrayez l'instant présent de la cible, puis mettez les secondes en forme sous forme de minutes et de secondes.

Vous obtenez ainsi un affichage de compte à rebours clair.

local target = os.time() + 90
local left = os.difftime(target, os.time())
print(string.format("%d:%02d left", left // 60, left % 60))

Vérification rapide

Choisissez le meilleur outil pour mesurer précisément le temps.

Récapitulatif

Pour mesurer une durée, relevez l'heure avant et après, puis soustrayez les deux valeurs. Utilisez os.time pour les durées de la vie courante exprimées en secondes entières, et os.clock pour chronométrer précisément le code, avec des fractions de seconde.

Mettez les résultats en forme avec string.format, et convertissez les secondes brutes en minutes et en secondes avec // et %. Ces outils vous permettent de chronométrer aussi bien une boucle qu'une journée de travail.

Questions Fréquemment Posées

La leçon « Mesurer des durées » est-elle gratuite ?

Oui — le texte complet de « Mesurer des durées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Mesurer des durées » ?

Mesurez la durée d’exécution du code. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Lua Academy ?

Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Mesurer des durées » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?

Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. os.time et os.date
  2. Formater des dates
  3. Arithmétique temporelle
  4. Mesurer des durées
← Retour à Lua Academy