Write, share, and compare JavaScript or TypeScript snippets in the browser, then inspect QuickJS, V8, Node, Deno, Bun, and Node JIT artifacts with Deep Analysis.
Tests Created
Benchmarks Run
Free & Open Source
Ads or Tracking
Built from the ground up for modern JavaScript development with a focus on speed, accuracy, and developer experience.
Deep Analysis can capture a Node `.cpuprofile` alongside runtime results. Open it in jsPerf's profile page, download it for Chrome DevTools, or inspect flame graphs and burn charts in CPUpro.
The profiler starts around the measured Node run, so setup and teardown noise stay out of the primary sample window.
Large profile payloads live as separate CPU profile documents while result cards keep lightweight references.
The synthetic commerce example gives the profiler a richer workload than the older slim sample profile.

Deep Analysis can capture V8 optimized-code output alongside Node runtime results. Open the JIT viewer to map optimized blocks back to benchmark source, search generated assembly, and share the exact artifact with teammates.
Jump between V8 optimized-code sections and the original benchmark lines that triggered them.
Large JIT artifacts live separately while benchmark result cards keep lightweight references to each captured output.
Use the synthetic commerce benchmark to compare ops/sec, CPU-profile refs, and optimized-code captures in one workflow.
Captured from the Node runtime path for the commerce benchmark.
// synthetic commerce benchmark
const route = routingBySku.get(order.sku) ?? 0
total += order.quantity * route
--- Optimized code ---
0x... movq rdx,[rbp-0x38]
0x... cmpq [rdx+0x17],rax
0x... jnz deopt_inline_cacheGuides and examples
Jump into focused examples, runtime comparisons, and measurement guides when you want a starting point instead of a blank benchmark.
Write TypeScript setup, teardown, and test bodies directly. jsPerf keeps the original typed source for sharing and reports, then prepares the right runtime form for each engine.
Use interfaces, discriminated unions, generics, typed arrays, and type annotations in benchmark cases.
Browser, QuickJS, V8, and Node run compiled JavaScript. Deno and Bun can run native TypeScript for cross-runtime comparison.
Start from the synthetic commerce benchmark, then adapt the typed setup and runtime-friendly data shape to your real workload.
type Product = {
category: 'book' | 'tool' | 'game'
price: number
stock: number
}
function sumBy<T, K extends string>(
items: T[],
keyOf: (item: T) => K,
valueOf: (item: T) => number
) {
// benchmark typed helpers
}Browser
compiled JS
Node/V8
compiled JS
Deno/Bun
native TS
Browser benchmarks vary with every run. Deep Analysis runs your code in controlled server-side environments to deliver reproducible, canonical results with predictive insights.
A deterministic JavaScript interpreter compiled to WebAssembly. No JIT, no GC pauses, no variance — pure algorithmic cost measurement for reproducible baselines.
Full V8 engine inside an isolated Firecracker microVM. Captures real JIT compilation behavior, inline caching, and garbage collection effects.
Estimates time and space complexity for each benchmark, including loops, collection helpers, allocations, and async scheduling signals.
Compares interpreter memory sweeps with canonical V8 JIT results to estimate JIT amplification, memory response, and engine-specific behavior.
Turn any benchmark run into a polished slide deck. Walk teammates through the methodology, the numbers, the JIT amplification, and the recommendation — on screen, in fullscreen presenter mode, or printed straight to PDF.
Outperforms forEach() by 2.3× under canonical V8 with stable JIT amplification.
QuickJS
412k ops/s
V8
9.4M ops/s
JIT amp.
22.8×
Deep Analysis runs on real Firecracker microVMs, multi-runtime workers, Benchmark Doctor checks, and static complexity analysis — all of it costs real money to operate. If jsPerf saves you time, please consider supporting the project. Donors get higher rate limits, a Boosted badge, Benchmark Doctor guidance, and access to shareable presentation reports with complexity slides.
Already donated? to claim your boost.