New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

perftrace

Package Overview
Dependencies
Maintainers
0
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

perftrace - npm Package Compare versions

Comparing version 1.2.1 to 1.3.0

2

package.json
{
"name": "perftrace",
"version": "1.2.1",
"version": "1.3.0",
"description": "Record PerformanceEntry objects from Node.js and the Web in the Trace Event Format, so that it can be visualized on https://ui.perfetto.dev.",

@@ -5,0 +5,0 @@ "repository": {

@@ -17,2 +17,4 @@ # perftrace

To install via [NPM](https://www.npmjs.com/package/perftrace), run:
```

@@ -22,8 +24,63 @@ npm i perftrace

Alternatively, you can use it in vanilla JS, without any bundler, by using a CDN or static hosting. For example, using ES Modules, you can import the library with:
```html
<script type="module">
import { TraceEvents } from "https://cdn.jsdelivr.net/npm/perftrace/index.mjs";
</script>
```
## Usage
Check out the [API documentation](docs/api) and the [code examples](docs/examples).
<img width="1440" alt="usage-demo" src="https://github.com/user-attachments/assets/369d85a2-b018-44f8-88b9-ad98ec4adcda">
```js
const { TraceEvents, trackRequires } = require('perftrace');
const { writeFileSync } = require('fs');
const traceEvents = new TraceEvents();
// Writes the performance traces in the "events.json" file during process exit.
process.on("beforeExit", () => {
const events = traceEvents.getEvents();
traceEvents.destroy();
writeFileSync("events.json", JSON.stringify(events));
});
// Enables tracking require() calls.
trackRequires(true, { trackSource: true });
// The assert module takes milliseconds to load, so it would be distinctly
// visible in the performance trace.
const assert = require('assert');
const { performance } = require("node:perf_hooks");
// This is tracing an async setTimeout event which is interlaced with
// repeating setInterval events.
performance.mark("Timeout mark"); // marks the beginning of the timeout trace
setTimeout(() => {
performance.measure("Timeout", "Timeout mark"); // marks the ending of the timeout trace
}, 20);
let id = 0;
performance.mark(`Interval mark ${id}`); // marks the beginning of the first interval trace
setInterval(function () {
performance.measure(`Interval ${id}`, `Interval mark ${id}`); // marks the ending of the current interval trace
++id;
// The intervals should go up to 3 counts only.
if (id === 3) {
this.close();
}
performance.mark(`Interval mark ${id}`); // marks the beginning of the next interval trace
}, 5);
```
After running this script with `node filename.js`, open the generated `events.json` file on <https://ui.perfetto.dev>.
Check out the [API documentation](docs/api) and the [code examples](docs/examples) for details.
## License
This project is available under the [MIT license](https://opensource.org/license/MIT). See [LICENSE](LICENSE) for the full license text.

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc