30 open-source projects similar to bheisler/criterion.rs, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
Hyperfine is a command-line benchmarking tool used to measure the execution time of shell commands through multiple runs and statistical analysis. It functions as a comparative benchmarking utility and a shell performance analyzer, allowing for the evaluation of multiple commands against a reference baseline to determine relative speed. The tool distinguishes itself by isolating actual command performance through shell overhead correction and the ability to bypass the shell entirely using system calls. It supports parameterized execution, enabling benchmarks to run across a range of varying i
BenchmarkDotNet is a library and tool suite for measuring the execution time and memory allocation of .NET code. It utilizes statistical sampling and warm-up iterations to determine the stability and precise execution speed of specific methods. The project provides a JIT disassembly viewer to inspect processor disassembly and analyze how the compiler executes code paths. It includes a memory allocation profiler that tracks managed and native memory traffic to identify efficiency bottlenecks. Additionally, a runtime performance comparator allows the same benchmarks to be executed across differ
This project is a performance measurement framework and microbenchmarking library designed for C++ and Python. It provides a toolset for measuring the execution time of small code fragments using high-resolution timers, calculating statistical aggregates, and analyzing asymptotic complexity. The framework distinguishes itself through specialized capabilities for multithreaded performance testing, using synchronized execution to measure parallel throughput. It includes mechanisms to prevent compiler optimizations from removing benchmarked code and supports complex parameterization via Cartesia
FlameGraph is a performance profiling and visualization toolkit designed to identify bottlenecks in software execution. It functions as a processing engine that transforms raw stack trace samples into interactive, hierarchical diagrams. By representing aggregated execution frequency as nested rectangles, the tool allows developers to visualize hot code paths and analyze system behavior across both kernel and user-space environments. The project distinguishes itself through its ability to perform differential profile analysis, which highlights performance regressions or improvements by compari
gprof2dot is a performance graph generator and visualizer that converts gprof GNU profiler execution profiles into Graphviz DOT files. It transforms raw profiler data into a directed graph to map function call hierarchies and identify software bottlenecks. The tool employs heuristic-based color mapping to highlight performance hotspots by assigning colors to nodes and edges based on execution time percentages. It also supports differential profile analysis, allowing for the comparison of two distinct execution graphs to identify changes in timing and call counts between runs. To improve visu
This project is a framework for the iterative optimization and validation of LLM agent skills. It functions as an agent capability orchestrator and prompt optimizer, utilizing an evaluation framework to measure performance through weighted rubrics and automated rewriting. The system distinguishes itself through a closed-loop optimization cycle that employs independent reviewer agents to prevent anchoring effects and a ratchet-based version control mechanism that automatically reverts changes if they fail to improve baseline scores. It also features exploratory structural rewriting to overcome
Async-profiler is a sampling profiler for Java applications that tracks CPU time and stack traces across execution frames to identify performance bottlenecks. It is designed to capture profiling data without introducing timing bias. The project provides capabilities for JVM memory analysis to locate native and heap allocation hotspots and memory leaks. It also includes system contention analysis to identify resource bottlenecks through the tracking of contended locks and hardware performance counters. The tool converts raw profiling data into visual performance reports, including interactive
This project is a performance benchmarking framework and network protocol stress tester designed to evaluate system stability under high-concurrency conditions. It functions as a command-line utility that simulates massive volumes of simultaneous requests to identify infrastructure bottlenecks and verify service reliability. The tool distinguishes itself through its protocol-agnostic orchestration, which allows for load testing across diverse standards including HTTP, WebSocket, gRPC, and Radius. It supports complex request configurations, enabling users to inject custom headers, binary data,
Allure is a test reporting framework that normalizes execution data from multiple test frameworks across different programming languages into a common intermediate format. It aggregates results from multiple sources into a shared directory of JSON files and generates self-contained HTML reports through a modular plugin pipeline. The architecture includes a hierarchical step tree model to represent test execution, metadata annotation injection to enrich results at runtime, and directory-watch incremental rendering that regenerates reports in real time as new data arrives. Unlike generic report
Quickly find bottlenecks in Rust - one profiler for CPU, time, memory, and async code.
Fast and simple benchmarking for Rust projects
Find code blocking your Tokio workers. eBPF-powered, no instrumentation.
A stopwatch library for Rust. Used to time things.
Bytehound is a Linux memory profiler that utilizes a custom global allocator to intercept memory requests and track allocations and deallocations. It records full call-stack traces for every memory operation to map allocations back to their originating source code. The project features a remote memory profiling system that streams capture data via network sockets to a separate machine, minimizing resource overhead on the target system. Analysis is supported by a specialized domain-specific query language used to automate the detection of memory patterns and anomalies. The tool covers heap al
pyinstrument is a statistical sampling profiler for Python that records the call stack at regular intervals to identify performance bottlenecks with low overhead. It tracks wall-clock time, including I/O and external service calls, and provides specialized profiling for asynchronous programs by attributing time spent awaiting tasks to the calling function. The project converts captured execution data into interactive HTML reports, JSON, and flamecharts. It includes a call stack visualizer to simplify the analysis of execution paths and supports the profiling of individual cells within interac
numbers.js is a comprehensive mathematics library for JavaScript that provides a collection of advanced functions for scientific computing and data analysis. It is designed to handle complex mathematical operations through a modular architecture, offering tools for calculus, statistics, linear algebra, and prime number analysis. The library distinguishes itself by providing explicit control over numerical precision, allowing users to define error thresholds and manage decimal accuracy to mitigate rounding discrepancies. This focus on precision is paired with a suite of computational tools tha
sitespeed.io is a web performance analysis tool and monitoring system designed to measure website speed and Core Web Vitals using real browsers. It functions as a performance regression suite and a browser performance monitor, enabling the enforcement of performance budgets to detect and block speed regressions. The project is distinguished by its real device testing framework, which executes performance audits on physical Android and iOS hardware via USB connections. It includes a specialized tool for generating and comparing HTTP Archive files to diagnose network bottlenecks, alongside inte
This project is a Python data analysis library and exploratory data analysis framework designed for processing raw datasets. It provides a suite of tools for examining data, identifying anomalies, and applying statistical methods to uncover patterns. The repository functions as a machine learning modeling toolkit and a statistical data modeling suite. It includes predictive algorithms and mathematical models used to analyze relationships between data variables and derive insights from complex datasets. The project covers a broad range of capabilities including data science, machine learning
xsv is a suite of high-performance command-line utilities written in Rust for the analysis, manipulation, and statistical processing of large delimited datasets. It provides a toolkit for processing comma-separated value files through a command line interface. The project provides capabilities for statistical analysis, including the computation of column statistics, value frequencies, and descriptive metrics. It also includes data manipulation utilities for joining, slicing, sampling, and reformatting records. The toolkit covers a broad range of data operations including column selection, da
benchmark.js is a benchmarking and statistical analysis library designed to measure and compare the execution speeds of JavaScript functions. It serves as a performance measurement tool that calculates mean execution time, margin of error, and standard deviation for specific code implementations. The library provides capabilities for comparing benchmark results to determine relative speed and manages organized test suites that can be run, cloned, or reset in bulk. It includes sampling precision controls to adjust minimum sample sizes and maximum run times to ensure statistical reliability. T
quant-wiki is a comprehensive knowledge base and structured reference for quantitative finance, financial engineering, and algorithmic trading. It serves as a centralized library of documentation covering mathematical models, financial instruments, and systematic trading strategies. The project integrates AI-driven capabilities through a modular retrieval-augmented generation framework that extracts structured data from research papers and news. It features a multi-agent workflow engine designed to discover and validate predictive alpha factors, alongside tools for local large language model
Danfo.js is a data analysis and preprocessing library for JavaScript that provides high-performance labeled data structures. It implements data frames and series to enable complex data analysis, statistical computing, and the manipulation of structured tabular data. The project serves as a machine learning preprocessing library, offering utilities for categorical label encoding, one-hot encoding, and numeric feature scaling and standardization. It specifically facilitates the conversion of labeled data structures into tensors for model training and evaluation. The library covers a broad set
This project is a numerical computing library designed for scientific and engineering mathematical operations. It functions as a comprehensive linear algebra framework, a statistical analysis library, and a toolkit for mathematical optimization and numerical integration. The library is distinguished by its provider-based native acceleration, which allows managed code to be swapped for platform-native binary libraries to increase the performance of computationally intensive routines. It also supports a hybrid approach to matrix storage, implementing separate strategies for dense and sparse mat
DataFrame is a C++ tabular data library and manipulation engine designed for managing heterogeneous data in contiguous memory. It functions as a statistical analysis framework and time series analysis toolkit, providing the means to store, index, and transform multidimensional datasets. The project distinguishes itself through a high-performance execution model that utilizes column-major storage, SIMD-aligned memory allocation, and a thread-pool for parallel computations. It employs a visitor-based algorithm dispatch system and policy-driven transformations to decouple data processing logic f
Scientist is a Ruby code parity testing library and production experimentation framework. It allows for the safe deployment of candidate code paths alongside a control implementation to verify that new logic produces the same outputs and exceptions as the original. The library identifies behavioral divergences between legacy and refactored code by running both versions in a live environment. It functions as a refactoring regression detector, measuring performance parity and detecting mismatches using real-world data without affecting the end user. The system covers broad capabilities for mon
Tablesaw is a Java dataframe library designed for manipulating, filtering, and aggregating structured data. It serves as a toolkit for statistical analysis, data visualization, and machine learning execution within the Java Virtual Machine. The project provides specialized tools for computing descriptive statistics and generating cross-tabulations. It includes a visualization library for creating histograms and scatter plots, as well as a framework for executing linear regression, clustering, and classification tasks through integration with statistical libraries. The library covers a broad
This project is an exploratory data analysis framework and profiling tool designed to generate comprehensive statistical reports from Pandas and Spark DataFrames. It functions as a data quality profiler that identifies missing values, duplicates, and high correlations within tabular datasets. The tool distinguishes itself through specialized capabilities for time-series analysis, extracting temporal statistics, seasonality, and auto-correlation plots. It also includes a dataset comparison utility to identify structural or content changes between different versions of a dataset. The analysis