1.0.2 • Published 3 years ago

process-tracing v1.0.2

Weekly downloads
7
License
MIT
Repository
github
Last release
3 years ago

Process TypeScript tracing files

Post-processing script for TypeScript's experimental generateTrace files.

Quick Usage

npm i -g process-tracing
process-tracing [options] input-file output-file

Use --help for all options.

Additional Verbiage

TypeScript recently introduced generateTrace to generate trace files that are useful in debugging the typechecker's performance. These files can become pretty big in long compilations, to a point where they cannot be loaded into about://tracing.

The thing to keep in mind is that trace files are complete — all events are included, rather than performing a periodic statistical sampling. This script's main use is to mimic such statistical sampling by filtering out events. For example, down-sample a tracing file at a 5ms frequency:

process-tracing --sample=5 trace.1.json sampled-output.json

(Note that this is still not equivalent to statistical sampling, since the complete tracing in itself introduces additional overhead.)

The script has a few additional useful features:

  • Input/output files can be gzipped (or brotli-zipped) based on the file name. (about://tracing, as well as other profiling tools, will happily accept a .json.gz file.)

  • It can "close-off" unterminated events, in case of a partial trace file due to a compiler crash.

  • Instead of periodic sampling, it can also drop events below a given threshold.