Performance
===========

L'interface **`Performance`** donne accès à des informations liées aux performances pour la page actuelle. Elle fait partie de l'API « High Resolution Time », mais est complétée par les APIs Performance Timeline, Navigation Timing (en-US), User Timing (en-US), et Resource Timing (en-US).

Un objet de ce type peut être obtenu en appelant l'attribut en lecture seule `window.performance` (en-US).

**Note :** Cette interface et ses attributs sont accessibles aux Web Workers via `WorkerGlobalScope.performance` (en-US) sauf dans les cas cités ci-dessous. Notez également que les marqueurs et les mesures de performance sont définis par contexte. Si vous créez un marqueur dans le processus principal (ou un autre Web Worker), vous ne pourrez pas le voir dans le processus du Web Worker, et réciproquement.

Propriétés
----------

*L'interface `Performance` n'hérite d'aucune propriété.*

`performance.navigation` Lecture seule  
Obsolète

`PerformanceNavigation` est un objet qui fournit des informations contextuelles sur les opérations incluses dans les indicateurs de `timing`, notamment si la page a été chargée ou actualisée, combien de redirections ont été effectuées, etc…

**Note :** Indisponible dans les Web Workers.

`performance.timing` Lecture seule  
Obsolète

`PerformanceTiming` est un objet contenant des informations de performance liées à la latence.

**Note :** Indisponible dans les Web Workers.

`performance.memory` Lecture seule  
Non-standard

Une extension *non standard* ajoutée dans Chrome, cette propriété fournit à un objet des informations de base sur l'utilisation de la mémoire. *Vous **ne devriez pas utiliser** cette API non standard.*

`Performance.timeOrigin` Lecture seule  
Expérimental

Fournit un horodatage haute résolution de l'heure de début de la mesure de performance.

Méthodes
--------

*L'interface `Performance` n'hérite d'aucune méthode*.

`performance.clearMarks()`

Supprime le *marqueur* indiqué des données de performances du navigateur mises en mémoire tampon.

`performance.clearMeasures()`

Supprime la *mesure* indiquée des données de performances du navigateur mises en mémoire tampon.

`performance.clearResourceTimings()`

Supprime toutes les entrées de performance avec un `entryType` "`resource`" des données de performances du navigateur mises en mémoire tampon.

`performance.getEntries()`

Retourne une liste d'objets `PerformanceEntry` basée sur le *filtre* indiqué.

`performance.getEntriesByName()`

Retourne une liste d'objets `PerformanceEntry` basée sur le *nom* indiqué.

`performance.getEntriesByType()`

Retourne une liste d'objets `PerformanceEntry` basée sur le *type* indiqué.

`performance.mark()`

Crée un `timestamp` avec le nom indiqué, dans la mémoire tampon du navigateur dédiée aux performances.

`performance.measure()`

Crée un `timestamp` nommé, dans la mémoire tampon du navigateur dédiée aux performances, entre deux marqueurs spécifiques (connus comme le *marqueur de début* et le *marqueur de fin*, respectivement).

`Performance.now()`

Retourne un objet `DOMHighResTimeStamp` représentant le nombre de millisecondes écoulées depuis un instant donné.

`performance.setResourceTimingBufferSize()`

Configure la taille de la mémoire tampon pour le chronométrage des ressources du navigateur. La valeur passée en argument indiquera le nombre maximal d'objets `PerformanceEntry` ayant le `type` "`resource`" qu'il sera possible d'y stocker.

`Performance.toJSON()`

Retourne un objet JSON représentant l'objet `Performance`.

Événements
----------

On pourra écouter ces événements en utilisant `addEventListener()` ou en assignant un gestionnaire d'événement à la propriété `on<EventName>` de cette interface.

`resourcetimingbufferfull`

Déclenché lorsque le tampon de synchronisation des ressources du navigateur est plein. Également disponible via la propriété `onresourcetimingbufferfull`.

Spécifications
--------------

| Specification |
| --- |
| High Resolution Time # sec-performance |
| Performance Timeline # extensions-to-the-performance-interface |
| Resource Timing # sec-extensions-performance-interface |
| User Timing # extensions-performance-interface |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Performance Timeline
* Navigation Timing API (en-US)
* User Timing API (en-US)
* Resource Timing API (en-US)