Skip to content

getPerformance

Get page performance metrics data, including DNS resolution, TCP connection, resource loading, and other performance indicators.

API

getPerformance

Return

ArgumentDescriptionType
BasicType | undefinedPerformance metrics objectBasicType | undefined

BasicType

PropertyDescriptionType
dnsSearchDNS resolution time (ms)number
tcpConnectTCP connection time (ms)number
sslConnectSSL secure connection time (ms)number
requestTTFB network request time (ms)number
responseData transfer time (ms)number
parseDomTreeDOM parsing time (ms)number
resourceResource loading time (ms)number
domReadyDOM Ready time (ms)number
httpHeadHTTP header size (bytes)number
interactiveFirst interactive time (ms)number
completePage fully loaded time (ms)number
redirectRedirect countnumber
redirectTimeRedirect time (ms)number
durationTotal resource request time (ms)number
fpFirst Paint time (white screen time, ms)number | undefined
fcpFirst Contentful Paint time (first screen end time, ms)number | undefined

Parameters

No parameters

Example

Basic Usage

js
import { getPerformance } from 'ranuts';

const perf = getPerformance();
if (perf) {
  console.log('DNS resolution time:', perf.dnsSearch, 'ms');
  console.log('TCP connection time:', perf.tcpConnect, 'ms');
  console.log('First screen time:', perf.fcp, 'ms');
}

Performance Monitoring

js
import { getPerformance } from 'ranuts';

window.addEventListener('load', () => {
  const perf = getPerformance();
  if (perf) {
    // Send performance data to server
    sendToServer({
      dns: perf.dnsSearch,
      tcp: perf.tcpConnect,
      request: perf.request,
      fcp: perf.fcp,
    });
  }
});

Performance Analysis

js
import { getPerformance } from 'ranuts';

function analyzePerformance() {
  const perf = getPerformance();
  if (!perf) return;

  console.log('=== Performance Analysis ===');
  console.log('DNS resolution:', perf.dnsSearch, 'ms');
  console.log('TCP connection:', perf.tcpConnect, 'ms');
  console.log('SSL handshake:', perf.sslConnect, 'ms');
  console.log('Request response:', perf.request, 'ms');
  console.log('Data transfer:', perf.response, 'ms');
  console.log('DOM parsing:', perf.parseDomTree, 'ms');
  console.log('Resource loading:', perf.resource, 'ms');
  console.log('First Paint:', perf.fp, 'ms');
  console.log('First Contentful Paint:', perf.fcp, 'ms');
}

Notes

  1. Browser support: Requires browser support for Performance API, all modern browsers support it.

  2. Server-side environment: Returns undefined in server-side environments (no window object).

  3. Timing: Recommended to call after page load completes (load event) to get complete performance data.

  4. Data units: All time units are in milliseconds, size units are in bytes.

  5. Use case: Commonly used for performance monitoring, performance analysis, performance optimization, etc.

Released under the MIT License.