Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/clinicjs/node-clinic-flame
Programmable interface to `clinic flame`
https://github.com/clinicjs/node-clinic-flame
Last synced: 5 days ago
JSON representation
Programmable interface to `clinic flame`
- Host: GitHub
- URL: https://github.com/clinicjs/node-clinic-flame
- Owner: clinicjs
- License: mit
- Created: 2018-07-17T14:30:23.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2023-06-27T20:57:29.000Z (over 1 year ago)
- Last Synced: 2024-12-24T03:10:07.321Z (13 days ago)
- Language: JavaScript
- Homepage: https://clinicjs.org
- Size: 900 KB
- Stars: 70
- Watchers: 16
- Forks: 12
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Clinic.js Flame
[![npm version][npm-version]][npm-url] [![Stability Stable][stability-stable]][stability-docs] [![Github Actions build status][actions-status]][actions-url]
[![Downloads][npm-downloads]][npm-url] [![Code style][lint-standard]][lint-standard-url]Programmable interface to [Clinic.js][clinic-url] Flame. Learn more about Clinic.js: https://clinicjs.org/
![Screenshot](screenshot.png)
## Issues
To open an issue, please use the [main repository](https://github.com/clinicjs/node-clinic) with the `flame` label.
## Installation
```
npm i -S @clinic/flame
```## Supported node versions
* Node.js 16 and above
## Example
```js
const ClinicFlame = require('@clinic/flame')
const flame = new ClinicFlame()flame.collect(['node', './path-to-script.js'], function (err, filepath) {
if (err) throw errflame.visualize(filepath, filepath + '.html', function (err) {
if (err) throw err
})
})
```## Documentation
```js
const ClinicFlame = require('@clinic/flame')
const flame = new ClinicFlame()
```### new ClinicFlame([settings])
* settings [``][]
* detectPort [``][] **Default**: false
* debug [``][] If set to true, the generated html will not be minified.
**Default**: false
* dest [``][] The folder where the collected data is stored.
**Default**: '.'
* kernelTracing [``][] If set to true, it will use `linux_perf` to profile the application.
(available only on linux) **Default**: false#### `flame.collect(args, callback)`
Starts a process by using [0x](https://github.com/davidmarkclements/0x)
0x will produce a file in the current working directory, with the process PID in
its filename. The filepath relative to the current working directory will be the
value in the callback.`stdout`, `stderr`, and `stdin` will be relayed to the calling process. As will
the `SIGINT` event.#### `flame.visualize(dataFilename, outputFilename, callback)`
Will consume the datafile specified by `dataFilename`, this datafile will be
produced by the sampler using `flame.collect`.`flame.visualize` will then output a standalone HTML file to `outputFilename`.
When completed the `callback` will be called with no extra arguments, except a
possible error.## License
[MIT](LICENSE)[stability-stable]: https://img.shields.io/badge/stability-stable-green.svg?style=flat-square
[stability-docs]: https://nodejs.org/api/documentation.html#documentation_stability_index
[npm-version]: https://img.shields.io/npm/v/@clinic/flame.svg?style=flat-square
[npm-url]: https://www.npmjs.org/@clinic/flame
[npm-downloads]: http://img.shields.io/npm/dm/@clinic/flame.svg?style=flat-square
[lint-standard]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
[lint-standard-url]: https://github.com/feross/standard
[clinic-url]: https://github.com/clinicjs/node-clinic
[``]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
[``]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type
[``]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
[actions-status]: https://github.com/clinicjs/node-clinic-flame/workflows/CI/badge.svg
[actions-url]: https://github.com/clinicjs/node-clinic-flame/actions