hckhanh
fast-url
BlogDocsChangelog

Optimize core URL building functions (2-3x performance improvement)

#81Closed
Comparing
copilot/optimize-library-performance
(
934d150
) with
main
(
14b8455
)
CodSpeed Performance Gauge
-56%
Improvements
19
Regressions
1
Untouched
138
Skipped
22

Benchmarks

Skipped (22)

Uses exactly one separator even if the first part ends with it and the second part starts with it
benchmark/join.bench.ts::join benchmarks
Skipped
21.8 µs*
Substitutes all params present in the object passed
benchmark/subst.bench.ts::subst benchmarks
Skipped
97.4 µs*
Can handle multiple params
benchmark/query.bench.ts::query benchmarks
Skipped
88 µs*
Can handle complex URL's
benchmark/urlcat.bench.ts::urlcat benchmarks
Skipped
201.5 µs*
Large query string (15 params)
benchmark/urlcat.bench.ts::urlcat benchmarks::Complex cases
Skipped
150.8 µs*
Deep path with 5 parameters
benchmark/urlcat.bench.ts::urlcat benchmarks::Complex cases
Skipped
118.2 µs*
Base template only (no path)
benchmark/urlcat.bench.ts::urlcat benchmarks::Edge cases
Skipped
98.1 µs*
Boolean and number params
benchmark/urlcat.bench.ts::urlcat benchmarks::Edge cases
Skipped
113.3 µs*
Complex URL with many params (original test)
benchmark/urlcat.bench.ts::urlcat benchmarks::Complex cases
Skipped
182.3 µs*
Array in query params
benchmark/urlcat.bench.ts::urlcat benchmarks::Edge cases
Skipped
84.7 µs*
Multiple query params (5 params)
benchmark/urlcat.bench.ts::urlcat benchmarks::Medium complexity
Skipped
111.1 µs*
Path params with special characters
benchmark/urlcat.bench.ts::urlcat benchmarks::Medium complexity
Skipped
112.8 µs*
Empty params object
benchmark/urlcat.bench.ts::urlcat benchmarks::Edge cases
Skipped
26.7 µs*
Two path params + two query params
benchmark/urlcat.bench.ts::urlcat benchmarks::Medium complexity
Skipped
112.3 µs*
Base URL with trailing slash + path
benchmark/urlcat.bench.ts::urlcat benchmarks::Simple cases
Skipped
31 µs*
REST API endpoint with pagination
benchmark/urlcat.bench.ts::urlcat benchmarks::Real-world patterns
Skipped
85.9 µs*
Concatenate base URL and path only
benchmark/urlcat.bench.ts::urlcat benchmarks::Simple cases
Skipped
82.4 µs*
Resource with ID and nested resource
benchmark/urlcat.bench.ts::urlcat benchmarks::Real-world patterns
Skipped
102.1 µs*
Single query parameter
benchmark/urlcat.bench.ts::urlcat benchmarks::Simple cases
Skipped
92.6 µs*
Search endpoint with filters
benchmark/urlcat.bench.ts::urlcat benchmarks::Real-world patterns
Skipped
96 µs*
Single path parameter
benchmark/urlcat.bench.ts::urlcat benchmarks::Simple cases
Skipped
85.1 µs*
URL with port number
benchmark/urlcat.bench.ts::urlcat benchmarks::Real-world patterns
Skipped
98.9 µs*

Failed

Base URL with trailing slash + path
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
Regression
CodSpeed Performance Gauge
-56%
31 µs70.8 µs

Improved

Search endpoint with filters
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
CodSpeed Performance Gauge
+46%
95.7 µs65.6 µs
Large query string (15 params)
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
CodSpeed Performance Gauge
+43%
150.7 µs105.1 µs
Large query string (15 params) with some path params
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
CodSpeed Performance Gauge
+38%
166.2 µs120.5 µs
Multiple query params (5 params)
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
CodSpeed Performance Gauge
+32%
110.9 µs84 µs
Empty params object
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
CodSpeed Performance Gauge
+31%
26.7 µs20.3 µs
Concatenate base URL and path only
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
CodSpeed Performance Gauge
+29%
82.6 µs63.9 µs
Empty template
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
CodSpeed Performance Gauge
+29%
67.8 µs52.5 µs
Complex URL with many params (original test)
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
CodSpeed Performance Gauge
+28%
182 µs142 µs
REST API endpoint with pagination
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
CodSpeed Performance Gauge
+26%
85.7 µs67.8 µs
Path params with special characters
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
CodSpeed Performance Gauge
+26%
112.7 µs89.3 µs
Array in query params
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
CodSpeed Performance Gauge
+22%
83.7 µs68.7 µs
Base template only (no path)
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
CodSpeed Performance Gauge
+22%
99.2 µs81.5 µs
Single query parameter
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
CodSpeed Performance Gauge
+21%
92.5 µs76.6 µs
URL with port number
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
CodSpeed Performance Gauge
+21%
99.6 µs82.5 µs
Resource with ID and nested resource
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
CodSpeed Performance Gauge
+19%
101.7 µs85.1 µs
Boolean and number params
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
CodSpeed Performance Gauge
+17%
113.5 µs96.8 µs
Deep path with 5 parameters
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
CodSpeed Performance Gauge
+17%
118 µs100.9 µs
Join URL with trailing slash
benchmark/join.bench.ts::join benchmarks::URL path separators
CodSpeed Performance Gauge
+16%
16.5 µs14.2 µs
Join with separator at end of first part
benchmark/join.bench.ts::join benchmarks::Basic joins
CodSpeed Performance Gauge
+11%
16.9 µs15.2 µs

Passed

Both parts empty
benchmark/join.bench.ts::join benchmarks::Edge cases
CodSpeed Performance Gauge
+10%
12.9 µs11.8 µs
Multiple separators in content
benchmark/join.bench.ts::join benchmarks::Edge cases
CodSpeed Performance Gauge
+10%
14.7 µs13.4 µs
Two path params + two query params
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
CodSpeed Performance Gauge
+9%
112.3 µs102.8 µs
Three parameters (original)
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
CodSpeed Performance Gauge
+9%
78.6 µs72.2 µs
Long strings with separator
benchmark/join.bench.ts::join benchmarks::Edge cases
CodSpeed Performance Gauge
+8%
14.7 µs13.6 µs
Join with separator at start of second part
benchmark/join.bench.ts::join benchmarks::Basic joins
CodSpeed Performance Gauge
+8%
16.6 µs15.3 µs
Join URL parts with slash
benchmark/join.bench.ts::join benchmarks::URL path separators
CodSpeed Performance Gauge
+8%
16.2 µs15 µs
Join URL parts both with slash
benchmark/join.bench.ts::join benchmarks::URL path separators
CodSpeed Performance Gauge
+7%
16.3 µs15.2 µs
Second part empty
benchmark/join.bench.ts::join benchmarks::Edge cases
CodSpeed Performance Gauge
+7%
14.2 µs13.3 µs
Join deep URL paths
benchmark/join.bench.ts::join benchmarks::URL path separators
CodSpeed Performance Gauge
+7%
16 µs15 µs
Both parts have separator at boundary
benchmark/join.bench.ts::join benchmarks::Basic joins
CodSpeed Performance Gauge
+7%
17.2 µs16.1 µs
Join empty first part with query
benchmark/join.bench.ts::join benchmarks::Query string separators
CodSpeed Performance Gauge
+7%
14.3 µs13.4 µs
Join with leading ampersand
benchmark/join.bench.ts::join benchmarks::Query string separators
CodSpeed Performance Gauge
+6%
21 µs19.7 µs
First part empty
benchmark/join.bench.ts::join benchmarks::Edge cases
CodSpeed Performance Gauge
+6%
14 µs13.3 µs
Join query parts with ampersand
benchmark/join.bench.ts::join benchmarks::Query string separators
CodSpeed Performance Gauge
+6%
15 µs14.2 µs
Ampersand separator
benchmark/join.bench.ts::join benchmarks::Different separators
CodSpeed Performance Gauge
+5%
13.9 µs13.2 µs
Slash separator
benchmark/join.bench.ts::join benchmarks::Different separators
CodSpeed Performance Gauge
+5%
13.9 µs13.2 µs
Single path parameter
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
CodSpeed Performance Gauge
+5%
85 µs81.2 µs
Pipe separator
benchmark/join.bench.ts::join benchmarks::Different separators
CodSpeed Performance Gauge
+4%
13.8 µs13.2 µs
Comma separator
benchmark/join.bench.ts::join benchmarks::Different separators
CodSpeed Performance Gauge
+4%
13.8 µs13.3 µs
Question mark separator
benchmark/join.bench.ts::join benchmarks::Different separators
CodSpeed Performance Gauge
+4%
13.8 µs13.3 µs
Join URL path with query string
benchmark/join.bench.ts::join benchmarks::Query string separators
CodSpeed Performance Gauge
+3%
13.6 µs13.1 µs
Heavy encoding (many special chars)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
CodSpeed Performance Gauge
+1%
57.2 µs56.4 µs
Analytics tracking params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
+1%
79.3 µs78.8 µs
Empty string values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
CodSpeed Performance Gauge
0%
52.5 µs52.3 µs
Unicode characters
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
CodSpeed Performance Gauge
0%
54 µs53.7 µs
E-commerce cart params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
0%
62.9 µs62.7 µs
API query with includes
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
0%
57 µs56.8 µs
Two parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
55.9 µs55.8 µs
Multi-select filter params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
0%
59.3 µs59.1 µs
Small object (2 params)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
CodSpeed Performance Gauge
0%
24 µs23.9 µs
Short values (5 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
49.9 µs49.8 µs
Boolean values only
benchmark/query.bench.ts::query benchmarks::Different value types
CodSpeed Performance Gauge
0%
61.3 µs61.2 µs
Keys with special characters
benchmark/query.bench.ts::query benchmarks::Special characters
CodSpeed Performance Gauge
0%
51.9 µs51.8 µs
Null and undefined values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
CodSpeed Performance Gauge
0%
59.6 µs59.5 µs
Number values only
benchmark/query.bench.ts::query benchmarks::Different value types
CodSpeed Performance Gauge
0%
57.5 µs57.4 µs
Mixed encoding complexity
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
CodSpeed Performance Gauge
0%
56.3 µs56.2 µs
Fifty parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
195.5 µs195.2 µs
Values with spaces
benchmark/query.bench.ts::query benchmarks::Special characters
CodSpeed Performance Gauge
0%
53 µs52.9 µs
Single parameter
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
58.7 µs58.6 µs
Long values (50 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
58.3 µs58.2 µs
Unicode characters
benchmark/query.bench.ts::query benchmarks::Special characters
CodSpeed Performance Gauge
0%
62.9 µs62.8 µs
String values only
benchmark/query.bench.ts::query benchmarks::Different value types
CodSpeed Performance Gauge
0%
60.6 µs60.5 µs
BigInt values
benchmark/query.bench.ts::query benchmarks::Different value types
CodSpeed Performance Gauge
0%
69 µs68.9 µs
Pagination params
benchmark/query.bench.ts::query benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
55.6 µs55.6 µs
Original complex test
benchmark/query.bench.ts::query benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
85.8 µs85.7 µs
Various language scripts
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
CodSpeed Performance Gauge
0%
36.2 µs36.2 µs
Ten parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
70.8 µs70.7 µs
Five parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
68.1 µs68.1 µs
Values with special characters
benchmark/query.bench.ts::query benchmarks::Special characters
CodSpeed Performance Gauge
0%
53 µs52.9 µs
Simple join without separators at boundaries
benchmark/join.bench.ts::join benchmarks::Basic joins
CodSpeed Performance Gauge
0%
25.1 µs25.1 µs
Large object (16 params with arrays)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
CodSpeed Performance Gauge
0%
42.1 µs42.1 µs
Twenty parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
98.8 µs98.8 µs
2-byte UTF-8 characters
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
CodSpeed Performance Gauge
0%
77.3 µs77.2 µs
Complex multi-level template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
CodSpeed Performance Gauge
0%
76.6 µs76.5 µs
Form submission data
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
0%
68.8 µs68.7 µs
Search with filters
benchmark/query.bench.ts::query benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
69.3 µs69.3 µs
Array values
benchmark/query.bench.ts::query benchmarks::Different value types
CodSpeed Performance Gauge
0%
66.6 µs66.5 µs
Mixed types
benchmark/query.bench.ts::query benchmarks::Different value types
CodSpeed Performance Gauge
0%
71.7 µs71.7 µs
Heavy special characters (75% encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
CodSpeed Performance Gauge
0%
33.6 µs33.6 µs
Array of mixed types
benchmark/querystring.bench.ts::stringify benchmarks::Array values
CodSpeed Performance Gauge
0%
50.7 µs50.7 µs
Mixed ASCII and Unicode
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
CodSpeed Performance Gauge
0%
25.8 µs25.8 µs
Empty object
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
22.6 µs22.6 µs
Email address
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
19.9 µs19.9 µs
File path with spaces
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
15.2 µs15.2 µs
Very long values (200 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
80.6 µs80.6 µs
API query with includes
benchmark/query.bench.ts::query benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
63 µs63 µs
Medium values (20 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
53 µs53 µs
BigInt values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
CodSpeed Performance Gauge
0%
71.8 µs71.8 µs
Single parameter
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
55.5 µs55.5 µs
Mixed primitive types
benchmark/querystring.bench.ts::stringify benchmarks::Value types
CodSpeed Performance Gauge
0%
77.4 µs77.4 µs
Long values (50 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
56.4 µs56.5 µs
String values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
CodSpeed Performance Gauge
0%
52.4 µs52.4 µs
Boolean values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
CodSpeed Performance Gauge
0%
52.2 µs52.2 µs
Twenty parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
100 µs100.1 µs
Medium array (10 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
CodSpeed Performance Gauge
0%
79.5 µs79.5 µs
Light encoding (spaces only)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
CodSpeed Performance Gauge
0%
50.9 µs50.9 µs
Short values (5 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
51.9 µs52 µs
URL path
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
24.8 µs24.9 µs
Special numeric values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
CodSpeed Performance Gauge
0%
94.7 µs94.9 µs
Ten parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
70.6 µs70.6 µs
Small array (3 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
CodSpeed Performance Gauge
0%
46.6 µs46.7 µs
Number values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
CodSpeed Performance Gauge
0%
57.9 µs58 µs
Medium ASCII string (50 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
CodSpeed Performance Gauge
0%
44.2 µs44.2 µs
Multiple arrays
benchmark/querystring.bench.ts::stringify benchmarks::Array values
CodSpeed Performance Gauge
0%
54.5 µs54.6 µs
Five parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
55.3 µs55.4 µs
Empty object
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
16.8 µs16.8 µs
Two parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
CodSpeed Performance Gauge
0%
51 µs51 µs
Very long ASCII string (1000 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
CodSpeed Performance Gauge
0%
49.5 µs49.6 µs
Pagination params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
0%
54.5 µs54.6 µs
Medium values (20 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
CodSpeed Performance Gauge
0%
59.1 µs59.2 µs
SQL-like query
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
15.9 µs15.9 µs
Large array (50 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
Search query with special chars
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
14.8 µs14.9 µs
JSON-like string
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
CodSpeed Performance Gauge
0%
24 µs24.1 µs
Medium object (10 params)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
CodSpeed Performance Gauge
0%
30.7 µs30.7 µs
Long ASCII string (200 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
CodSpeed Performance Gauge
0%
22.5 µs22.5 µs
No encoding needed (pure alphanumeric)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
CodSpeed Performance Gauge
0%
48.2 µs48.3 µs
4-byte UTF-8 characters (emojis)
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
CodSpeed Performance Gauge
0%
22.1 µs22.2 µs
Empty arrays
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
CodSpeed Performance Gauge
0%
46.3 µs46.4 µs
Mixed safe and unsafe (50% encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
CodSpeed Performance Gauge
0%
15.8 µs15.8 µs
3-byte UTF-8 characters (CJK)
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
CodSpeed Performance Gauge
0%
23.6 µs23.7 µs
Empty string
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
CodSpeed Performance Gauge
0%
22.6 µs22.7 µs
All spaces (maximum encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
CodSpeed Performance Gauge
0%
13.8 µs13.9 µs
Safe special characters (no encoding needed)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
CodSpeed Performance Gauge
0%
13.6 µs13.6 µs
Search with filters
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
CodSpeed Performance Gauge
0%
62.9 µs63.2 µs
Short ASCII string (10 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
CodSpeed Performance Gauge
0%
18 µs18.1 µs
Long parameter values
benchmark/subst.bench.ts::subst benchmarks::Special characters
CodSpeed Performance Gauge
-1%
63.8 µs64.2 µs
Pure alphanumeric (no encoding needed)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
CodSpeed Performance Gauge
-1%
13.9 µs14 µs
Very deep template (8 levels)
benchmark/subst.bench.ts::subst benchmarks::Template complexity
CodSpeed Performance Gauge
-1%
83.1 µs83.7 µs
Long template with many segments
benchmark/subst.bench.ts::subst benchmarks::Template patterns
CodSpeed Performance Gauge
-1%
73.4 µs74 µs
Five parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
CodSpeed Performance Gauge
-1%
76.2 µs77 µs
Deep nesting with IDs
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
CodSpeed Performance Gauge
-1%
68.2 µs69 µs
String values
benchmark/subst.bench.ts::subst benchmarks::Different value types
CodSpeed Performance Gauge
-1%
69.8 µs70.6 µs
Date-based path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
CodSpeed Performance Gauge
-1%
76.2 µs77.1 µs
Versioned API endpoint
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
CodSpeed Performance Gauge
-1%
68.9 µs69.7 µs
CamelCase parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
CodSpeed Performance Gauge
-1%
69.3 µs70.1 µs
Ten parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
CodSpeed Performance Gauge
-1%
94.9 µs96.1 µs
Values with special chars
benchmark/subst.bench.ts::subst benchmarks::Special characters
CodSpeed Performance Gauge
-1%
67 µs67.9 µs
Mixed value types
benchmark/subst.bench.ts::subst benchmarks::Different value types
CodSpeed Performance Gauge
-1%
74.4 µs75.4 µs
Long parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
CodSpeed Performance Gauge
-1%
68.5 µs69.4 µs
Nested resource path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
CodSpeed Performance Gauge
-1%
66.7 µs67.6 µs
Medium complexity template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
CodSpeed Performance Gauge
-1%
66.7 µs67.6 µs
Parameters with static segments
benchmark/subst.bench.ts::subst benchmarks::Template patterns
CodSpeed Performance Gauge
-1%
67 µs68 µs
Number values
benchmark/subst.bench.ts::subst benchmarks::Different value types
CodSpeed Performance Gauge
-1%
69.5 µs70.5 µs
Values with spaces
benchmark/subst.bench.ts::subst benchmarks::Special characters
CodSpeed Performance Gauge
-1%
63.1 µs64 µs
Underscore parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
CodSpeed Performance Gauge
-1%
67.6 µs68.6 µs
Boolean values
benchmark/subst.bench.ts::subst benchmarks::Different value types
CodSpeed Performance Gauge
-1%
62.8 µs63.7 µs
REST API resource path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
CodSpeed Performance Gauge
-1%
62.8 µs63.7 µs
Consecutive parameters
benchmark/subst.bench.ts::subst benchmarks::Template patterns
CodSpeed Performance Gauge
-1%
68 µs69.1 µs
Parameter at beginning
benchmark/subst.bench.ts::subst benchmarks::Template patterns
CodSpeed Performance Gauge
-2%
63.3 µs64.2 µs
Short parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
CodSpeed Performance Gauge
-2%
65.9 µs66.9 µs
Parameter at end
benchmark/subst.bench.ts::subst benchmarks::Template patterns
CodSpeed Performance Gauge
-2%
64.5 µs65.6 µs
Two parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
CodSpeed Performance Gauge
-2%
70.2 µs71.3 µs
Single parameter
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
CodSpeed Performance Gauge
-2%
69.3 µs70.6 µs
Medium encoding (common special chars)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
CodSpeed Performance Gauge
-2%
51.3 µs52.4 µs
Unicode in values
benchmark/subst.bench.ts::subst benchmarks::Special characters
CodSpeed Performance Gauge
-2%
62.9 µs64.4 µs
Simple single-segment template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
CodSpeed Performance Gauge
-4%
61.2 µs63.7 µs

Commits

Click on a commit to change the comparison range
Base
main
14b8455
-55.88%
Remove early returns and optimize query function logic in path rendering
17d3df6
6 days ago
by hckhanh
-0.35%
Fix base URL handling in `createUrl` to remove trailing slash before processing
934d150
6 days ago
by hckhanh
© 2025 CodSpeed Technology
Home Terms Privacy Docs