0.0.7 • Published 1 year ago

@eeskov/performance-tracker v0.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Performance Tracker

This package provides a simple and efficient way to track and measure the performance of your JavaScript/TypeScript code. It helps to identify bottlenecks in your code and allows you to measure the time difference between different sections of your code. The PerformanceTracker class is designed to be easily integrated into any project.

Features

  • Track and measure the performance of different sections of your code
  • Get time differences between any two markers
  • Customize the output format
  • Singleton pattern, easily accessible from anywhere in your code Enable/disable tracking as needed

Installation

npm install @eeskov/performance-tracker

or

yarn add @eeskov/performance-tracker

Usage

import {PerformanceTracker} from '@eeskov/performance-tracker';

const tracker = PerformanceTracker.getInstance();

tracker.track('START');
for (let i = 0; i < 5; i++) {
  tracker.track('START_LOOP');
  if (i === 3) {
    await new Promise((resolve) => setTimeout(resolve, 1000));
  }
  tracker.track('END_LOOP');
}
tracker.track('END');

console.log(tracker.getDiffAll()); // Logs the time differences between all tracked markers

console.log(tracker.getDiff('START', 'END')); // Logs the time difference between 'start' and 'middle' markers
/*
{
  message: 'START -> END 1016.58 ms',
  label1: 'START',
  label2: 'END',
  diff: '1016.58'
}
*/

console.log(
  tracker.getDiffBetween(
    {
      label: 'START_LOOP',
      trackType: 'first',
    },
    'END_LOOP',
  ),
); // Logs all the time differences between START_LOOP and END_LOPP tracked markers

API

PerformanceTracker.getInstance(clean = false, isDisabled = false): Returns the singleton instance of the PerformanceTracker

track(marker: string): Adds a new marker with the specified label

getDiffAll(): Returns an array of TrackedEvent objects or a string if the performance tracker is disabled

getDiff(label1: string | LabelDiff, label2: string | LabelDiff): Returns a TrackedEvent object representing the time difference between two markers

getDiffBetween(label1: string | LabelDiff, label2: string | LabelDiff): Returns an array of TrackedEvent objects representing the time differences between two markers

flush(): Resets the stored timestamps and markers

getLabels(): Returns an array of marker labels

setFormatter(formatterFunc: PerfomanceLoggerFormatter): Sets a custom formatter function for the output

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests to improve the package.

License

This package is released under the MIT License.

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago