A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.cdn.mozilla.net/de/docs/Web/API/Performance_API/Performance_data below:

Leistungsdaten - Web-APIs | MDN

Leistungsdaten

Die Performance API misst und stellt Leistungsdaten bereit, die als Leistungskennzahlen für Ihre Webanwendung gesammelt werden können. Sie bietet Methoden, um Aspekte der Anwendungsleistung zu beobachten. Sie bietet jedoch keine Leistungsdatenanalyse oder Visualisierungen. Die Performance API ist jedoch gut in Entwickler-Tools in Browsern integriert, und ihre Daten werden häufig an Analysedienste und Bibliotheken gesendet, um Leistungskennzahlen aufzuzeichnen, die Ihnen helfen, die Daten zu bewerten und Leistungsengpässe zu finden, die Ihre Benutzer beeinflussen.

Diese Seite bietet einen Überblick darüber, welche Arten von Performance-API-Daten existieren, wie sie gesammelt werden und wie sie zugänglich gemacht werden können.

Datenerfassung

Die meisten der von der Performance API bereitgestellten Metriken werden automatisch vom Browser erfasst, und Sie müssen ihn nicht dazu auffordern, sie zu erfassen: Sie müssen sie nur abrufen.

Für einige Metriken müssen Sie dem Browser jedoch mitteilen, was gemessen werden soll:

Datenstruktur der Leistung

Mit der Performance API können Sie Leistungsdaten sowohl im Window- als auch im Worker-globalen Kontext sammeln. Wenn Sie Leistungsmetriken für mehrere Kontexte erfassen, sehen Sie sich performance.timeOrigin an, um Zeitursprünge zwischen Kontexten zu synchronisieren.

Innerhalb dieser Kontexte wird jedes Leistungsdatum durch Leistungseinträge dargestellt.

Leistungseinträge

Ein einzeln aufgezeichneter Leistungsdatensatz wird als Leistungseintrag bezeichnet und durch eine Instanz des PerformanceEntry-Interfaces dargestellt.

Die Performance API zeichnet verschiedene Arten von Leistungsdaten auf, und der PerformanceEntry verfügt über eine entryType-Eigenschaft, die als String die Art dieses Leistungseintrags beschreibt:

Subklassen von Leistungseinträgen

Bestimmte Eintragstypen enthalten in der Regel zusätzliche typenspezifische Daten: Zum Beispiel erfasst der "resource"-Typ die Zeitpunkte, zu denen die DNS-Suche begann und endete. Daher werden Einträge durch Subklassen dargestellt, die das grundlegende PerformanceEntry-Interface erweitern. Ein "resource"-Eintrag wird beispielsweise durch eine Instanz von PerformanceResourceTiming dargestellt, die von PerformanceEntry erbt und Eigenschaften hinzufügt, um DNS-Suchzeitstempel aufzuzeichnen.

Die Subklassen von PerformanceEntry definieren auch die Semantik der Eigenschaften, die zu PerformanceEntry selbst gehören: Zum Beispiel hat PerformanceEntry eine name-Eigenschaft, deren Bedeutung von der Subklasse abhängt.

Die folgenden Interfaces erben von PerformanceEntry:

Zugriff auf Daten

Sie können auf Leistungseinträge auf zwei Arten zugreifen. Die bevorzugte Methode ist die Verwendung des PerformanceObserver-Interfaces, das mit einer Callback-Funktion erstellt wird, die aufgerufen wird, wenn bestimmte Leistungseinträge aufgezeichnet werden. Sie rufen dann die observe-Methode auf, geben die zu beobachtenden Typen an und verwenden die buffered-Option, um Einträge abzurufen, die vor der Beobachtung aufgetreten sind.

function logEventDuration(entries) {
  const events = entries.getEntriesByType("event");
  for (const event of events) {
    console.log(
      `Event handler took: ${
        event.processingEnd - event.processingStart
      } milliseconds`,
    );
  }
}

const observer = new PerformanceObserver(logEventDuration);
observer.observe({ type: "event", buffered: true });

Alternativ können Sie die Methoden Performance.getEntries(), Performance.getEntriesByName() und Performance.getEntriesByType() verwenden, um alle Leistungseinträge für eine Seite oder Einträge, die dem angegebenen Namen oder Typ entsprechen, abzurufen.

const events = performance.getEntriesByType("event");

for (const event of events) {
  console.log(
    `Event handler took: ${
      event.processingEnd - event.processingStart
    } milliseconds`,
  );
}

Die PerformanceObserver-Option wird bevorzugt, weil:

Verwalten von Pufferspeichern

Es gibt ein Pufferlimit für Leistungseinträge für jedes globale Objekt. Dieses stellt sicher, dass der Browser nicht unbegrenzt Speicher verbraucht, wenn er Leistungsdaten speichert. Besonders wenn Ihre Website oder Anwendung viele Ressourcen abruft (z.B. bei Verwendung von Polling), müssen Sie sich die Pufferlimits ansehen:

Tabelle 1. Pufferspeichergrößen (Quelle).

Für "resource"-Eintragstypen finden Sie unter Verwalten von Ressourcenspeichergrößen Informationen dazu, wie Sie eine andere Pufferspeichergröße festlegen können.

Für "first-input" und "paint" ist die Begrenzung in der Definition der Metrik inhärent. Es wird nicht mehr als einen (oder zwei) Einträge geben.

Der Performance Observer-Rückruf enthält einen optionalen droppedEntriesCount-Parameter, der Ihnen mitteilt, wie viele Einträge verloren gingen, weil der Puffer voll war.

function perfObserver(list, observer, droppedEntriesCount) {
  list.getEntries().forEach((entry) => {
    // do something with the entries
  });
  if (droppedEntriesCount > 0) {
    console.warn(
      `${droppedEntriesCount} entries were dropped because the buffer was full.`,
    );
  }
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ type: "resource", buffered: true });

Eine weitere nützliche Methode ist PerformanceObserver.takeRecords(), die die aktuelle Liste der im Leistungsbeobachter gespeicherten Leistungseinträge zurückgibt und diese gleichzeitig leert.

JSON-Daten

Alle Leistungseinträge bieten einen toJSON()- Serializer, der eine JSON-Darstellung des Eintrags liefert. Dies kann nützlich sein, wenn Sie alle verfügbaren Daten sammeln und irgendwo speichern möchten.

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    console.log(entry.toJSON());
  });
});

observer.observe({ type: "event", buffered: true });

Dies würde ein JSON-Objekt wie folgt protokollieren:

{
  "name": "dragover",
  "entryType": "event",
  "startTime": 67090751.599999905,
  "duration": 128,
  "processingStart": 67090751.70000005,
  "processingEnd": 67090751.900000095,
  "cancelable": true
}

Um eine String-Darstellung des Eintrags zu erhalten, können Sie JSON.stringify(entry) mit jedem PerformanceEntry-Objekt direkt verwenden; es wird automatisch die toJSON()-Methode des Eintrags aufrufen.

Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4