1.0.0 • Published 10 months ago

breqd v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

breqd

Builtin modules REQuire Durations

This library measures the duration of require() on Node.js' builtin modules.

Usage

CLI usage

$ npx breqd
...
  { moduleName: 'tty', duration: 3822 },
  { moduleName: 'diagnostics_channel', duration: 3410 },
  { moduleName: 'url', duration: 3151 }
]
File generated by breqd: breqd-node-v20.17.0-darwin-x64.json
Open it on https://ui.perfetto.dev!

Opening the generated file on https://ui.perfetto.dev looks like this.

npm.io

Programmatic usage

import {
  ModuleDurationsMap,
  ModuleDuration,
  getModuleDurations,
  sortModuleDurations,
} from 'breqd';

const moduleDurations: ModuleDurationsMap = getModuleDurations();

const sortedModuleDurations: ModuleDuration[] = sortModuleDurations(moduleDurations);

console.log(sortedModuleDurations);
// [
//   { moduleName: 'repl', duration: 4989944 },
//   { moduleName: 'assert', duration: 3411434 },
//   { moduleName: 'http2', duration: 2925764 },
//   ...
// ]

API

getModuleDurations()

  • Returns ModuleDurationsMap:
    • index (string) - The module name.
    • value (number) - The duration of require() on the module in nanoseconds.

Measures the duration of require() on all builtin modules of the running Node.js process and returns it.

sortModuleDurations()

  • moduleDurations (ModuleDurationsMap) - The module-duration object from getModuleDurations().
  • Returns ModuleDuration[]:
    • moduleName (string) - The module name.
    • duration (number) - The duration of require() on the module in nanoseconds.

Returns a sorted array of all the builtin module require() durations in descending order of durations.

convertModuleDurationstoTEF()

  • moduleDurations (ModuleDuration[]) - The module-duration object from sortModuleDurations().
  • Returns TEF[]:
    • name (string) - The builtin module name.
    • cat (string) - The event category.
    • ph (string) - The event type.
    • pid (number) - The process ID.
    • ts (number) - The tracing clock timestamp of the event.
    • dur (number) - The duration of require() on the module in milliseconds.

Converts the sorted array of all the builtin module require() durations into Chrome's Trace Event Format, so that it can be viewed on https://ui.perfetto.dev.

License

MIT