# krausest/js-framework-benchmark

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/krausest-js-framework-benchmark).**

7,434 stars · 910 forks · JavaScript · Apache-2.0

## Links

- GitHub: https://github.com/krausest/js-framework-benchmark
- Homepage: https://krausest.github.io/js-framework-benchmark/
- awesome-repositories: https://awesome-repositories.com/repository/krausest-js-framework-benchmark.md

## Description

This project is a suite of analytical tools for quantifying web performance, specifically designed for benchmarking the rendering speed and memory usage of various JavaScript frameworks. It provides a standardized set of DOM manipulation tests and a comparison tool that uses weighted geometric means to measure efficiency across different web implementations.

The benchmark harness distinguishes itself by providing deep analysis of DOM reconciliation strategies, comparing the performance and correctness of keyed versus non-keyed rendering. It also includes a memory profiler for tracking allocations and leaks during repetitive update cycles, as well as a bundle size analyzer to measure network transfer weight and time to interactivity under simulated mobile constraints.

The project covers a broad range of performance analysis categories, including rendering duration from trigger to paint, memory consumption tracking, and startup metrics. It further ensures data integrity through structural HTML smoke tests that verify implementation correctness and framework classification.

The tool generates result tables and visual comparisons to track performance trends and changes across different versions.

## Tags

### Testing & Quality Assurance

- [Browser Rendering Benchmarks](https://awesome-repositories.com/f/testing-quality-assurance/browser-rendering-benchmarks.md) — Provides a standardized suite of tests measuring the speed and consistency of UI rendering across different JavaScript frameworks. ([source](https://krausest.github.io/js-framework-benchmark/2022/table_chrome_106.0.5249.61.html))
- [Cross-Framework Benchmarks](https://awesome-repositories.com/f/testing-quality-assurance/cross-framework-benchmarks.md) — Executes a standardized suite of rendering tests to compare performance and functional parity across different JavaScript frameworks.
- [Rendering Strategy Comparisons](https://awesome-repositories.com/f/testing-quality-assurance/agent-performance-benchmarks/benchmark-result-analysis/benchmark-result-comparison/rendering-strategy-comparisons.md) — Benchmarks the performance difference between keyed and non-keyed rendering to determine the impact of stable identity. ([source](https://cdn.jsdelivr.net/gh/krausest/js-framework-benchmark@master/README.md))
- [DOM Operation Benchmarks](https://awesome-repositories.com/f/testing-quality-assurance/dom-operation-benchmarks.md) — Provides a set of standardized tests measuring the time and resources required to perform common DOM operations.
- [DOM Rendering Profilers](https://awesome-repositories.com/f/testing-quality-assurance/dom-rendering-profilers.md) — Measures the time elapsed from trigger to browser paint for standardized DOM operations like updating table rows.
- [JavaScript and WebAssembly Benchmarks](https://awesome-repositories.com/f/testing-quality-assurance/javascript-and-webassembly-benchmarks.md) — Compares the execution speed and rendering efficiency of different JavaScript frameworks using standardized DOM operations.
- [DOM Operation Timing](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-diagnostics/performance-measurement/dom-operation-timing.md) — Measures the time required to perform common DOM operations including creating, replacing, and updating rows. ([source](https://cdn.jsdelivr.net/gh/krausest/js-framework-benchmark@master/README.md))
- [Cross-Framework Performance Test Executions](https://awesome-repositories.com/f/testing-quality-assurance/test-and-benchmark-execution/cross-framework-performance-test-executions.md) — Executes predefined performance tests across multiple frameworks to produce comparable rendering and memory metrics. ([source](https://krausest.github.io/js-framework-benchmark/))
- [Bundle Size Analysis](https://awesome-repositories.com/f/testing-quality-assurance/bundle-size-analysis.md) — Determines the total post-compression kilobyte weight of all resources required to load the page. ([source](https://krausest.github.io/js-framework-benchmark/2023/table_chrome_113.0.5672.63.html))
- [Startup Profilers](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-analysis/startup-profilers.md) — Measures the time taken during system initialization to evaluate time to interactivity under mobile constraints.
- [Structural Correctness Tests](https://awesome-repositories.com/f/testing-quality-assurance/structural-correctness-tests.md) — Verifies the structural correctness of generated HTML to ensure frameworks follow required keyed or non-keyed patterns.
- [Web Startup Profilers](https://awesome-repositories.com/f/testing-quality-assurance/web-startup-profilers.md) — Evaluates time-to-interactive and network payload size by simulating mobile device constraints and network conditions.

### Graphics & Multimedia

- [DOM Reconciliation](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/dom-web-rendering-strategies/surgical-dom-update-engines/dom-reconciliation.md) — Measures the performance difference between keyed and non-keyed rendering strategies to optimize list updates.

### Operating Systems & Systems Programming

- [Runtime Memory Overhead Tracking](https://awesome-repositories.com/f/operating-systems-systems-programming/gpu-memory-optimizations/memory-consumption-tracking/runtime-memory-overhead-tracking.md) — Monitors memory consumption and overhead specifically for the runtime engine during DOM update cycles. ([source](https://krausest.github.io/js-framework-benchmark/2025/table_chrome_134.0.6998.45.html))
- [Cyclic Memory Snapshots](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/memory-allocation-tracers/javascript-memory-leak-detection/cyclic-memory-snapshots.md) — Tracks memory allocation in megabytes before and after repetitive DOM manipulations to identify leaks and resource overhead.

### System Administration & Monitoring

- [Memory Profilers](https://awesome-repositories.com/f/system-administration-monitoring/memory-profilers.md) — Analyzes heap allocation patterns and identifies memory leaks during heavy DOM updates.
- [Web Startup Metrics](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/performance-benchmarkers/web-startup-metrics.md) — The benchmarking tool evaluates time to interactivity and network transfer weight using mobile simulation to assess loading efficiency. ([source](https://krausest.github.io/js-framework-benchmark/2021/table_chrome_94.0.4606.54.html))

### User Interface & Experience

- [Keyed Reconciliation Systems](https://awesome-repositories.com/f/user-interface-experience/keyed-reconciliation-systems.md) — Evaluates the efficiency of systems that use unique identifiers to track list items and optimize DOM updates. ([source](https://krausest.github.io/js-framework-benchmark/2022/table_chrome_103.0.5060.53_osx.html))

### Data & Databases

- [Web Framework Performance Comparisons](https://awesome-repositories.com/f/data-databases/database-performance-utilities/performance-benchmarking/web-framework-performance-comparisons.md) — Provides a reporting system that compares the speed and scalability of different web framework implementations.

### Development Tools & Productivity

- [Bundle Size Analyzers](https://awesome-repositories.com/f/development-tools-productivity/bundle-size-analyzers.md) — Quantifies the compressed network transfer weight and script bootup time to assess bundle size impact.
