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:
Opening the generated file on https://ui.perfetto.dev looks like this.
Programmatic usage
import {
ModuleDurationsMap,
ModuleDuration,
getModuleDurations,
sortModuleDurations,
} from 'breqd';
const moduleDurations: ModuleDurationsMap = getModuleDurations();
const sortedModuleDurations: ModuleDuration[] = sortModuleDurations(moduleDurations);
console.log(sortedModuleDurations);
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