8 points par xguru 2025-12-11 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Un outil de benchmarking ultra léger de moins de 10 KB conçu pour mesurer précisément les performances du code
  • Fonctionne sur la base de la Web API et prend en charge une mesure de temps précise via process.hrtime ou performance.now
  • Exécutable dans divers environnements d'exécution JavaScript comme Node.js, Deno et Bun
  • Fournit des fonctions d'analyse statistique : moyenne, écart-type, marge d'erreur, variance, percentiles et prise en charge du calcul de latence et de throughput (débit)
  • Mode de concurrence (concurrency) : exécution parallèle par task ou par bench, contrôle du nombre maximal d'exécutions simultanées via l'option threshold
  • Architecture basée sur les événements et extensible : les classes Bench et Task héritent d'EventTarget, avec possibilité d'ajouter des écouteurs d'événements comme cycle et abort
  • Détection automatique des fonctions asynchrones : vérifie si la fonction renvoie AsyncFunction ou Promise pour activer automatiquement le mode async
  • Visualisation et conversion des résultats : la méthode bench.table() transforme les données au format console.table(), et la personnalisation du format d'affichage est possible via une fonction Converter personnalisée
  • Avec l'option retainSamples, les données brutes des échantillons sont conservées, et peuvent être réutilisées pour des analyses personnalisées, des visualisations graphiques et l'export des résultats
  • Sélection possible d'un fournisseur de timestamps (timestamp provider) précis
    • La valeur par défaut est performance.now()
    • Options d'optimisation par runtime disponibles : hrtimeNow, bunNanoseconds, auto
    • Possibilité d'implémenter une interface personnalisée TimestampProvider
  • Gestion d'interruption basée sur AbortSignal
    • Interruption (abort) possible de l'ensemble du benchmark ou au niveau d'une tâche individuelle
    • En cas d'interruption, émission de l'événement abort et définition du drapeau d'état (task.result.aborted)
  • Structure en package unique sans dépendance externe, garantissant un démarrage et une exécution rapides
  • Sa signature est de proposer une conception plus petite, plus simple et plus adaptée aux Web API, par rapport à Benchmark.js, mitata, tatami-ng et Bema

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.