hckhanh
fast-url
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
GitHub Actions run
CPU Simulation
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
1 day ago
cac655b
main
push
Compare
Base
Search a run
Head
main
cac655b
1 day ago
CPU Simulation
Compare
Suggested base runs:
Parent Commit
Skipped (22)
Benchmarks
Join with separator at start of second part
benchmark/join.bench.ts::join benchmarks::Basic joins
15.3 µs
Medium encoding (common special chars)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
52.3 µs
Five parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
68.5 µs
String values only
benchmark/query.bench.ts::query benchmarks::Different value types
60.9 µs
Join with separator at end of first part
benchmark/join.bench.ts::join benchmarks::Basic joins
15.3 µs
Single parameter
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
59 µs
Number values only
benchmark/query.bench.ts::query benchmarks::Different value types
57.6 µs
Both parts have separator at boundary
benchmark/join.bench.ts::join benchmarks::Basic joins
16.1 µs
Simple join without separators at boundaries
benchmark/join.bench.ts::join benchmarks::Basic joins
24.9 µs
Ampersand separator
benchmark/join.bench.ts::join benchmarks::Different separators
13.3 µs
Empty object
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
22.4 µs
Unicode characters
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
54 µs
Comma separator
benchmark/join.bench.ts::join benchmarks::Different separators
13.3 µs
Medium values (20 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
59.6 µs
Mixed encoding complexity
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
56.4 µs
No encoding needed (pure alphanumeric)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
49.5 µs
Long values (50 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
56.8 µs
Pipe separator
benchmark/join.bench.ts::join benchmarks::Different separators
13.3 µs
Mixed primitive types
benchmark/querystring.bench.ts::stringify benchmarks::Value types
77.4 µs
Question mark separator
benchmark/join.bench.ts::join benchmarks::Different separators
13.3 µs
Both parts empty
benchmark/join.bench.ts::join benchmarks::Edge cases
11.8 µs
Short values (5 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
52.1 µs
Boolean values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
51.7 µs
First part empty
benchmark/join.bench.ts::join benchmarks::Edge cases
13.2 µs
Multiple separators in content
benchmark/join.bench.ts::join benchmarks::Edge cases
13.4 µs
Slash separator
benchmark/join.bench.ts::join benchmarks::Different separators
13.3 µs
Long strings with separator
benchmark/join.bench.ts::join benchmarks::Edge cases
13.7 µs
Very long values (200 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
80.1 µs
BigInt values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
72.1 µs
Second part empty
benchmark/join.bench.ts::join benchmarks::Edge cases
13.3 µs
Number values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
58.2 µs
String values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
52.6 µs
Join empty first part with query
benchmark/join.bench.ts::join benchmarks::Query string separators
13.4 µs
Two parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
56.3 µs
Join URL path with query string
benchmark/join.bench.ts::join benchmarks::Query string separators
13.1 µs
Ten parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
70.9 µs
Original complex test
benchmark/query.bench.ts::query benchmarks::Real-world patterns
85.4 µs
Empty template
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
56.8 µs
Boolean values
benchmark/subst.bench.ts::subst benchmarks::Different value types
62.8 µs
Join URL with trailing slash
benchmark/join.bench.ts::join benchmarks::URL path separators
14.2 µs
Join URL parts with slash
benchmark/join.bench.ts::join benchmarks::URL path separators
15.1 µs
Array values
benchmark/query.bench.ts::query benchmarks::Different value types
66.7 µs
Five parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
75.8 µs
Number values
benchmark/subst.bench.ts::subst benchmarks::Different value types
69.6 µs
Join URL parts both with slash
benchmark/join.bench.ts::join benchmarks::URL path separators
15.2 µs
Mixed value types
benchmark/subst.bench.ts::subst benchmarks::Different value types
74.7 µs
Pagination params
benchmark/query.bench.ts::query benchmarks::Real-world patterns
55.7 µs
Ten parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
95 µs
Join query parts with ampersand
benchmark/join.bench.ts::join benchmarks::Query string separators
14.1 µs
Twenty parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
99.1 µs
Two parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
70 µs
CamelCase parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
69.6 µs
API query with includes
benchmark/query.bench.ts::query benchmarks::Real-world patterns
63.1 µs
String values
benchmark/subst.bench.ts::subst benchmarks::Different value types
68.3 µs
Deep nesting with IDs
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
68.3 µs
Single parameter
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
69.1 µs
Join with leading ampersand
benchmark/join.bench.ts::join benchmarks::Query string separators
19.8 µs
Date-based path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
76.1 µs
BigInt values
benchmark/query.bench.ts::query benchmarks::Different value types
68.7 µs
Long parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
68.5 µs
Mixed types
benchmark/query.bench.ts::query benchmarks::Different value types
72 µs
Short parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
65.9 µs
Search with filters
benchmark/query.bench.ts::query benchmarks::Real-world patterns
69.7 µs
Join deep URL paths
benchmark/join.bench.ts::join benchmarks::URL path separators
14.9 µs
Underscore parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
67 µs
REST API resource path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
64.6 µs
Unicode characters
benchmark/query.bench.ts::query benchmarks::Special characters
63 µs
Boolean values only
benchmark/query.bench.ts::query benchmarks::Different value types
62.9 µs
Medium values (20 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
53.4 µs
Keys with special characters
benchmark/query.bench.ts::query benchmarks::Special characters
52.1 µs
Three parameters (original)
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
78.7 µs
Unicode in values
benchmark/subst.bench.ts::subst benchmarks::Special characters
63.8 µs
Long parameter values
benchmark/subst.bench.ts::subst benchmarks::Special characters
64.4 µs
Complex multi-level template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
76.8 µs
Values with spaces
benchmark/query.bench.ts::query benchmarks::Special characters
53.5 µs
Values with spaces
benchmark/subst.bench.ts::subst benchmarks::Special characters
65.1 µs
Parameter at beginning
benchmark/subst.bench.ts::subst benchmarks::Template patterns
63.5 µs
Safe special characters (no encoding needed)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
13.5 µs
Long values (50 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
57.7 µs
Nested resource path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
66.5 µs
Values with special characters
benchmark/query.bench.ts::query benchmarks::Special characters
53.3 µs
Versioned API endpoint
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
69.2 µs
Medium complexity template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
66.6 µs
Parameter at end
benchmark/subst.bench.ts::subst benchmarks::Template patterns
64.8 µs
Simple single-segment template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
63.2 µs
Email address
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
19.7 µs
Long template with many segments
benchmark/subst.bench.ts::subst benchmarks::Template patterns
73.5 µs
Consecutive parameters
benchmark/subst.bench.ts::subst benchmarks::Template patterns
68.2 µs
Short values (5 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
50 µs
File path with spaces
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
15.2 µs
Deep path with 5 parameters
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
100.5 µs
Very deep template (8 levels)
benchmark/subst.bench.ts::subst benchmarks::Template complexity
83 µs
Mixed safe and unsafe (50% encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
15.6 µs
Values with special chars
benchmark/subst.bench.ts::subst benchmarks::Special characters
68.3 µs
Large query string (15 params)
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
104.4 µs
Heavy special characters (75% encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
33.3 µs
Parameters with static segments
benchmark/subst.bench.ts::subst benchmarks::Template patterns
67 µs
Array in query params
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
68.2 µs
All spaces (maximum encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
13.7 µs
Pure alphanumeric (no encoding needed)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
13.8 µs
Complex URL with many params (original test)
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
140.9 µs
JSON-like string
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
23.9 µs
SQL-like query
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
15.7 µs
Large query string (15 params) with some path params
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
120.1 µs
Search query with special chars
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
14.6 µs
Empty params object
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
24 µs
Boolean and number params
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
95.9 µs
Two path params + two query params
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
100.5 µs
Empty string
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
22.4 µs
URL path
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
24.7 µs
Search endpoint with filters
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
72.5 µs
Base template only (no path)
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
81.5 µs
Long ASCII string (200 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
22.4 µs
Multiple query params (5 params)
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
86.3 µs
2-byte UTF-8 characters
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
78.2 µs
3-byte UTF-8 characters (CJK)
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
23.5 µs
4-byte UTF-8 characters (emojis)
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
22.1 µs
Mixed ASCII and Unicode
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
25.5 µs
Path params with special characters
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
95.9 µs
Resource with ID and nested resource
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
84.8 µs
Various language scripts
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
36 µs
Array of mixed types
benchmark/querystring.bench.ts::stringify benchmarks::Array values
50.3 µs
REST API endpoint with pagination
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
76.1 µs
Medium ASCII string (50 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
44.1 µs
Medium array (10 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
81.7 µs
Small array (3 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
48.3 µs
Empty arrays
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
46.5 µs
Large array (50 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
1.9 ms
Fifty parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
204.1 µs
Multiple arrays
benchmark/querystring.bench.ts::stringify benchmarks::Array values
55.4 µs
Large object (16 params with arrays)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
42.2 µs
Base URL with trailing slash + path
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
25.1 µs
Small object (2 params)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
24 µs
URL with port number
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
82.3 µs
Special numeric values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
94.4 µs
Medium object (10 params)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
30.8 µs
Null and undefined values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
59.7 µs
Single parameter
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
54.2 µs
Concatenate base URL and path only
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
66.7 µs
Single path parameter
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
78.6 µs
Twenty parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
92.8 µs
Ten parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
66.2 µs
Five parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
52.4 µs
Single query parameter
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
72.1 µs
Heavy encoding (many special chars)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
56.8 µs
Empty string values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
52.6 µs
E-commerce cart params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
62.7 µs
API query with includes
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
57.1 µs
Two parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
50.5 µs
Pagination params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
54.6 µs
Short ASCII string (10 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
18.1 µs
Form submission data
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
68.9 µs
Very long ASCII string (1000 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
49.3 µs
Search with filters
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
63.1 µs
Light encoding (spaces only)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
50.4 µs
Analytics tracking params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
78.9 µs
Empty object
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
16.6 µs
Multi-select filter params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
59.3 µs
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs