JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6138
  • Score
    100M100P100Q128494F
  • License Apache-2.0

Chromium trace parser

Package Exports

  • tracium
  • tracium/lib/main-thread-tasks

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tracium) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Tracium

Tracium is the Google Lighthouse tracing parser extracted into a stand-alone library.

Tracium is a modern alternative to Big Rig. Tracium correctly parses modern Chrome Traces (generated by Chrome 66+).

Usage

Install:

$ npm install tracium

Use:

const Tracium = require('tracium');
const traceJSON = JSON.parse(fs.readFileSync('./mytrace.json', 'utf8'));
const tasks = Tracium.computeMainThreadTasks(traceJSON, {
  // |flatten| default to |false|. When false, only top-level tasks will be returned.
  flatten: true,
});

Check out examples at //examples/ folder.

API

tracium.computeMainThreadTasks(traceJson[, options])

  • traceJson <Object> A JSON of a Chromium trace
  • options <Object> Set of options for trace processing
    • flatten <boolean> Defaults to false. Whether to flatten tasks tree.
  • returns: <Array<Object>> An array of tasks:
    • kind <string> describes task attribution. Can be one of the following:
      • 'parseHTML'
      • 'styleLayout'
      • 'paintCompositeRender'
      • 'scriptParseCompile'
      • 'scriptEvaluation'
      • 'garbageCollection'
      • 'other'
    • startTime <number> monotonic start time in milliseconds
    • endTime <number> monotonic end time in milliseconds
    • duration <number> task duration in milliseconds, a.k.a. "wall time"
    • selfTime <number> time spent in the task at the current level of the task tree
    • event <Object> original trace event object associated with the task
    • children <Array<[Task]>> an array of child tasks
    • parent <?[Task]> a parent task if any

Returns an array of tasks that belong to the main thread of the inspected page. If flatten is passed to false, than only top-level tasks will be returned.

An example task
{
  event:
   { pid: 29772,
     tid: 775,
     ts: 588826692280,
     ph: 'X',
     cat: 'toplevel',
     name: 'TaskQueueManager::ProcessTaskFromWorkQueue',
     args:
      { src_file: '../../base/trace_event/trace_log.cc',
        src_func: 'SetEnabled' },
     dur: 27,
     tdur: 22,
     tts: 514358 },
  startTime: 0,
  endTime: 0.027,
  children: [],
  duration: 0.027,
  selfTime: 0.027,
  kind: 'other' }