Arkhe Performance Benchmarks
Performance comparison between Arkhe, es-toolkit, es-toolkit/compat and lodash-es.
Data auto-generated on Feb 20, 2026.
TL;DR
Arkhe wins ~53% of benchmarks. Fastest for typical use cases (small to medium arrays). Lodash can be faster on very large arrays (10K+ items) thanks to internal hash-based caching.
Operations per second. Higher is better.
Methodology
To ensure a fair comparison, benchmarks are adapted from es-toolkit's benchmark suite. Using a well-known, third-party benchmark suite avoids any bias in our favor.
Does Performance Matter?
Not all functions matter equally for performance. A map called 10,000 times in a loop matters more than a debounce called once at setup. We assign weights based on real-world usage patterns:
| Perf matters? | Weight | Description | Examples |
|---|---|---|---|
CRITICAL A lot | 5 pts | Hot path functions called in tight loops | map, filter, reduce, groupBy, chunk |
HIGH Yes | 3 pts | Frequently used utilities, but not in tight loops | get, set, pick, omit, cloneDeep |
MEDIUM A bit | 1 pt | Occasional utilities | Type guards (isArray, isString), string formatting |
LOW No | 0.5 pts | Setup-only functions where runtime perf is irrelevant | debounce, throttle, once, memoize |
This scoring gives a more realistic picture of which library will actually make your app faster.
We made minor adjustments to some benchmarks to ensure they measure actual function execution rather than just function creation.
Each benchmark tests two scenarios:
- Small arrays: Typical real-world usage (3-10 items)
- Large arrays: Stress test with 10,000 items
The "fastest" label indicates the best performer for each test.
Libraries Tested
| Library | Version | Description |
|---|---|---|
| arkhe | 1.1.0 | This module |
| es-toolkit | 1.44.0 | Modern utility library |
| lodash-es | 4.17.23 | ES modules lodash |
Benchmark Results
| Test | arkhe | es-toolkit | es-toolkit/compat | lodash-es |
|---|---|---|---|---|
| Array | ||||
chunk CRITICAL | 5 pts | 14.32M ops/s (1.43x) | 14.31M ops/s (1.43x) | 14.20M ops/s (1.44x) | 20.49M ops/s fastest |
chunk largeArray CRITICAL | 5 pts | 292.39K ops/s (1x) | 289.24K ops/s (1.01x) | 292.63K ops/s fastest | 97.64K ops/s (3x) |
countBy CRITICAL | 5 pts | 5.12M ops/s (1.14x) | 5.84M ops/s fastest | N/A | 4.77M ops/s (1.22x) |
countBy largeArray CRITICAL | 5 pts | 6.29K ops/s (1.01x) | 6.36K ops/s fastest | N/A | 3.69K ops/s (1.73x) |
difference CRITICAL | 5 pts | 21.76M ops/s fastest | 13.27M ops/s (1.64x) | 10.23M ops/s (2.13x) | 6.03M ops/s (3.61x) |
difference largeArray CRITICAL | 5 pts | 4.99K ops/s (1.81x) | 3.66K ops/s (2.47x) | 4.72K ops/s (1.92x) | 9.05K ops/s fastest |
differenceBy CRITICAL | 5 pts | 7.62M ops/s (1.19x) | 9.07M ops/s fastest | 6.93M ops/s (1.31x) | 5.70M ops/s (1.59x) |
differenceBy largeArray CRITICAL | 5 pts | 12.66K ops/s fastest | 2.85K ops/s (4.45x) | 2.88K ops/s (4.39x) | 8.61K ops/s (1.47x) |
differenceWith CRITICAL | 5 pts | 20.69M ops/s (1.01x) | 20.84M ops/s fastest | 8.73M ops/s (2.39x) | 6.19M ops/s (3.37x) |
differenceWith largeArray CRITICAL | 5 pts | 17.99 ops/s (1.07x) | 18.39 ops/s (1.05x) | 18.75 ops/s (1.03x) | 19.30 ops/s fastest |
drop CRITICAL | 5 pts | 21.55M ops/s (1.18x) | 18.69M ops/s (1.36x) | 18.78M ops/s (1.35x) | 25.37M ops/s fastest |
drop largeArray CRITICAL | 5 pts | 1.72M ops/s (1.02x) | 1.72M ops/s (1.02x) | 1.75M ops/s fastest | 176.89K ops/s (9.88x) |
dropRight CRITICAL | 5 pts | 17.85M ops/s (1.55x) | 19.88M ops/s (1.39x) | 18.24M ops/s (1.51x) | 27.62M ops/s fastest |
dropRight largeArray CRITICAL | 5 pts | 1.72M ops/s fastest | 1.72M ops/s (1x) | 1.71M ops/s (1.01x) | 194.64K ops/s (8.82x) |
dropRightWhile CRITICAL | 5 pts | 18.70M ops/s fastest | 18.49M ops/s (1.01x) | 14.74M ops/s (1.27x) | 14.12M ops/s (1.32x) |
dropRightWhile largeArray CRITICAL | 5 pts | 808.08K ops/s fastest | 798.95K ops/s (1.01x) | 251.66K ops/s (3.21x) | 59.50K ops/s (13.58x) |
dropWhile CRITICAL | 5 pts | 20.44M ops/s fastest | 19.73M ops/s (1.04x) | 14.15M ops/s (1.44x) | 14.68M ops/s (1.39x) |
dropWhile largeArray CRITICAL | 5 pts | 340.90K ops/s fastest | 26.03K ops/s (13.1x) | 15.13K ops/s (22.54x) | 30.90K ops/s (11.03x) |
fill CRITICAL | 5 pts | 27.06M ops/s fastest | 18.66M ops/s (1.45x) | 19.99M ops/s (1.35x) | 19.00M ops/s (1.42x) |
fill customRange CRITICAL | 5 pts | 26.79M ops/s fastest | 20.65M ops/s (1.3x) | 20.39M ops/s (1.31x) | 17.95M ops/s (1.49x) |
findLast CRITICAL | 5 pts | 27.53M ops/s fastest | N/A | 13.53M ops/s (2.04x) | 13.94M ops/s (1.98x) |
findLast largeArray CRITICAL | 5 pts | 53.91K ops/s fastest | N/A | 27.29K ops/s (1.98x) | 31.74K ops/s (1.7x) |
findLastIndex CRITICAL | 5 pts | 30.56M ops/s fastest | N/A | 16.37M ops/s (1.87x) | 29.53M ops/s (1.03x) |
findLastIndex largeArray CRITICAL | 5 pts | 54.67K ops/s fastest | N/A | 28.01K ops/s (1.95x) | 32.08K ops/s (1.7x) |
groupBy CRITICAL | 5 pts | 8.97M ops/s fastest | 6.90M ops/s (1.3x) | 5.45M ops/s (1.65x) | 7.58M ops/s (1.18x) |
groupBy largeArray CRITICAL | 5 pts | 12.07K ops/s fastest | 7.70K ops/s (1.57x) | 6.42K ops/s (1.88x) | 5.67K ops/s (2.13x) |
intersection CRITICAL | 5 pts | 8.39M ops/s (1.44x) | 12.05M ops/s fastest | 7.12M ops/s (1.69x) | 5.61M ops/s (2.15x) |
intersection largeArray CRITICAL | 5 pts | 2.42K ops/s (1.67x) | 2.16K ops/s (1.87x) | 2.24K ops/s (1.81x) | 4.05K ops/s fastest |
intersectionBy CRITICAL | 5 pts | 10.79M ops/s fastest | 8.91M ops/s (1.21x) | 4.64M ops/s (2.33x) | 1.97M ops/s (5.48x) |
intersectionBy largeArrays CRITICAL | 5 pts | 1.46K ops/s (1.02x) | 1.48K ops/s fastest | 896 ops/s (1.66x) | 1.19K ops/s (1.24x) |
intersectionWith CRITICAL | 5 pts | 20.15M ops/s fastest | 19.31M ops/s (1.04x) | 4.61M ops/s (4.37x) | 5.03M ops/s (4.01x) |
intersectionWith largeArrays CRITICAL | 5 pts | 3.15 ops/s (1x) | 3.16 ops/s (1x) | 3.16 ops/s fastest | 2.73 ops/s (1.16x) |
keyBy CRITICAL | 5 pts | 12.15M ops/s fastest | 11.87M ops/s (1.02x) | 9.38M ops/s (1.3x) | 10.57M ops/s (1.15x) |
keyBy largeArray CRITICAL | 5 pts | 2.23K ops/s (1x) | 2.24K ops/s fastest | 2.07K ops/s (1.08x) | 2.04K ops/s (1.1x) |
maxBy CRITICAL | 5 pts | 27.62M ops/s (1.03x) | 28.32M ops/s fastest | 14.90M ops/s (1.9x) | 24.38M ops/s (1.16x) |
maxBy largeArray CRITICAL | 5 pts | 112.77K ops/s fastest | 112.41K ops/s (1x) | 21.86K ops/s (5.16x) | 21.12K ops/s (5.34x) |
minBy CRITICAL | 5 pts | 25.77M ops/s (1.01x) | 26.04M ops/s fastest | 13.06M ops/s (1.99x) | 23.70M ops/s (1.1x) |
minBy largeArray CRITICAL | 5 pts | 106.61K ops/s (1.02x) | 108.56K ops/s fastest | 22.33K ops/s (4.86x) | 21.07K ops/s (5.15x) |
orderBy CRITICAL | 5 pts | 3.90M ops/s (1.06x) | 4.14M ops/s fastest | 2.62M ops/s (1.58x) | 2.14M ops/s (1.93x) |
orderBy withFunctions CRITICAL | 5 pts | 4.11M ops/s (1.03x) | 4.23M ops/s fastest | 2.84M ops/s (1.49x) | 2.32M ops/s (1.82x) |
partition CRITICAL | 5 pts | 18.41M ops/s (1x) | 18.48M ops/s fastest | 18.40M ops/s (1x) | 17.55M ops/s (1.05x) |
partition largeArray CRITICAL | 5 pts | 35.24K ops/s fastest | 35.02K ops/s (1.01x) | 15.12K ops/s (2.33x) | 10.31K ops/s (3.42x) |
reverse CRITICAL | 5 pts | 971.91K ops/s (1.28x) | N/A | 1.23M ops/s (1.01x) | 1.25M ops/s fastest |
sample MEDIUM | 1 pts | 24.26M ops/s fastest | 22.23M ops/s (1.09x) | 22.19M ops/s (1.09x) | 22.92M ops/s (1.06x) |
sample largeArray MEDIUM | 1 pts | 21.16M ops/s (1.1x) | 23.34M ops/s fastest | 21.43M ops/s (1.09x) | 20.56M ops/s (1.14x) |
sampleSize MEDIUM | 1 pts | 12.01M ops/s fastest | 8.02M ops/s (1.5x) | 7.28M ops/s (1.65x) | 10.94M ops/s (1.1x) |
sampleSize largeArray MEDIUM | 1 pts | 363.24K ops/s fastest | 215.17K ops/s (1.69x) | 166.19K ops/s (2.19x) | 99.48K ops/s (3.65x) |
shuffle MEDIUM | 1 pts | 11.03M ops/s (1.04x) | 11.36M ops/s (1.01x) | 11.44M ops/s fastest | 8.96M ops/s (1.28x) |
shuffle largeArray MEDIUM | 1 pts | 15.50K ops/s (1x) | 15.54K ops/s fastest | 15.48K ops/s (1x) | 11.91K ops/s (1.31x) |
take CRITICAL | 5 pts | 19.82M ops/s (1.4x) | 19.72M ops/s (1.4x) | 18.40M ops/s (1.5x) | 27.67M ops/s fastest |
take largeArray CRITICAL | 5 pts | 15.54M ops/s (1.07x) | 16.37M ops/s (1.01x) | 16.58M ops/s fastest | 8.06M ops/s (2.06x) |
takeRight CRITICAL | 5 pts | 20.27M ops/s (1.39x) | 20.21M ops/s (1.39x) | 20.06M ops/s (1.41x) | 28.19M ops/s fastest |
takeRight largeArray CRITICAL | 5 pts | 16.79M ops/s fastest | 16.69M ops/s (1.01x) | 16.55M ops/s (1.01x) | 7.63M ops/s (2.2x) |
takeRightWhile CRITICAL | 5 pts | 18.65M ops/s (1.3x) | 18.42M ops/s (1.31x) | 10.01M ops/s (2.41x) | 24.16M ops/s fastest |
takeRightWhile largeArray CRITICAL | 5 pts | 20.51M ops/s (1.12x) | 20.88M ops/s (1.1x) | 15.71M ops/s (1.46x) | 22.88M ops/s fastest |
takeWhile CRITICAL | 5 pts | 28.04M ops/s (1.05x) | 29.45M ops/s fastest | 15.89M ops/s (1.85x) | 28.29M ops/s (1.04x) |
takeWhile largeArray CRITICAL | 5 pts | 4.44M ops/s (1.02x) | 4.52M ops/s fastest | 987.23K ops/s (4.58x) | 1.92M ops/s (2.35x) |
toArray HIGH | 3 pts | 14.49M ops/s fastest | N/A | 3.31M ops/s (4.37x) | 3.97M ops/s (3.65x) |
union CRITICAL | 5 pts | 6.79M ops/s fastest | 5.79M ops/s (1.17x) | 4.89M ops/s (1.39x) | 5.99M ops/s (1.13x) |
union largeArray CRITICAL | 5 pts | 1.58K ops/s (1.06x) | 1.67K ops/s fastest | 1.47K ops/s (1.14x) | 1.39K ops/s (1.2x) |
unionBy CRITICAL | 5 pts | 11.36M ops/s fastest | 6.28M ops/s (1.81x) | 5.15M ops/s (2.2x) | 5.29M ops/s (2.15x) |
unionBy largeArray CRITICAL | 5 pts | 1.37K ops/s (1.01x) | 1.28K ops/s (1.08x) | 716 ops/s (1.93x) | 1.38K ops/s fastest |
unionWith CRITICAL | 5 pts | 16.41M ops/s fastest | 7.76M ops/s (2.11x) | 12.99M ops/s (1.26x) | 5.69M ops/s (2.88x) |
unionWith largeArray CRITICAL | 5 pts | 94.88 ops/s (1.48x) | 132 ops/s (1.06x) | 130 ops/s (1.08x) | 140 ops/s fastest |
uniq CRITICAL | 5 pts | 18.06M ops/s fastest | 9.77M ops/s (1.85x) | 9.02M ops/s (2x) | 17.04M ops/s (1.06x) |
uniq largeArray CRITICAL | 5 pts | 15.49K ops/s fastest | 10.08K ops/s (1.54x) | 10.11K ops/s (1.53x) | 9.93K ops/s (1.56x) |
uniqBy largeArrays CRITICAL | 5 pts | 9.07K ops/s (1.26x) | 8.07K ops/s (1.41x) | 2.09K ops/s (5.47x) | 11.41K ops/s fastest |
uniqBy smallArrays CRITICAL | 5 pts | 12.23M ops/s (1.29x) | 12.40M ops/s (1.28x) | 6.05M ops/s (2.62x) | 15.83M ops/s fastest |
uniqWith largeArrays CRITICAL | 5 pts | 3.11K ops/s (1.11x) | 3.19K ops/s (1.08x) | 3.20K ops/s (1.07x) | 3.43K ops/s fastest |
uniqWith smallArrays CRITICAL | 5 pts | 17.43M ops/s (1.06x) | 18.53M ops/s fastest | 10.67M ops/s (1.74x) | 14.60M ops/s (1.27x) |
unzip largeArrays CRITICAL | 5 pts | 15.49K ops/s fastest | 13.11K ops/s (1.18x) | 5.58K ops/s (2.78x) | 2.06K ops/s (7.53x) |
unzip smallArrays CRITICAL | 5 pts | 19.32M ops/s (1.15x) | 22.13M ops/s fastest | 15.17M ops/s (1.46x) | 6.63M ops/s (3.34x) |
xor CRITICAL | 5 pts | 3.24M ops/s (1.16x) | 3.10M ops/s (1.21x) | N/A | 3.75M ops/s fastest |
xor largeArray CRITICAL | 5 pts | 606 ops/s (1.58x) | 585 ops/s (1.64x) | N/A | 957 ops/s fastest |
zip CRITICAL | 5 pts | 22.98M ops/s fastest | 22.43M ops/s (1.02x) | 12.41M ops/s (1.85x) | 5.60M ops/s (4.1x) |
zip largeArray CRITICAL | 5 pts | 20.43K ops/s fastest | 19.72K ops/s (1.04x) | 19.72K ops/s (1.04x) | 14.24K ops/s (1.44x) |
zipWith CRITICAL | 5 pts | 7.59M ops/s fastest | 4.48M ops/s (1.7x) | 7.32M ops/s (1.04x) | 3.75M ops/s (2.02x) |
zipWith largeArray CRITICAL | 5 pts | 4.45K ops/s (1.32x) | 2.39K ops/s (2.46x) | 5.47K ops/s (1.07x) | 5.87K ops/s fastest |
| Function | ||||
after LOW | 0.5 pts | 21.43M ops/s (1.04x) | 22.25M ops/s fastest | 16.87M ops/s (1.32x) | 18.61M ops/s (1.2x) |
before LOW | 0.5 pts | 19.51M ops/s (1.15x) | 22.53M ops/s fastest | 11.65M ops/s (1.93x) | 13.22M ops/s (1.7x) |
curry LOW | 0.5 pts | 7.24M ops/s (1.26x) | 9.12M ops/s fastest | 8.31M ops/s (1.1x) | 834.81K ops/s (10.92x) |
debounce LOW | 0.5 pts | 1.53M ops/s fastest | 743.43K ops/s (2.05x) | 847.57K ops/s (1.8x) | 540.66K ops/s (2.82x) |
flip LOW | 0.5 pts | 29.37M ops/s fastest | N/A | 19.11M ops/s (1.54x) | 2.76M ops/s (10.64x) |
flowRight LOW | 0.5 pts | 15.29M ops/s fastest | 13.39M ops/s (1.14x) | 10.13M ops/s (1.51x) | 5.45M ops/s (2.81x) |
memoize LOW | 0.5 pts | 5.21M ops/s (1.02x) | 5.06M ops/s (1.05x) | 5.32M ops/s fastest | 3.97M ops/s (1.34x) |
negate LOW | 0.5 pts | 29.10M ops/s fastest | 28.70M ops/s (1.01x) | 24.85M ops/s (1.17x) | 24.80M ops/s (1.17x) |
noop LOW | 0.5 pts | 29.54M ops/s (1.02x) | 30.19M ops/s fastest | N/A | 28.80M ops/s (1.05x) |
once LOW | 0.5 pts | 30.30M ops/s fastest | 29.43M ops/s (1.03x) | 24.29M ops/s (1.25x) | 23.18M ops/s (1.31x) |
throttle LOW | 0.5 pts | 1.58M ops/s fastest | 501.07K ops/s (3.16x) | 820.19K ops/s (1.93x) | 913.72K ops/s (1.73x) |
| Is | ||||
isArray MEDIUM | 1 pts | 26.03M ops/s (1.08x) | N/A | 27.93M ops/s (1.01x) | 28.11M ops/s fastest |
isArrayBuffer MEDIUM | 1 pts | 6.53M ops/s fastest | 6.07M ops/s (1.08x) | 6.44M ops/s (1.01x) | 128.57K ops/s (50.76x) |
isBoolean MEDIUM | 1 pts | 32.54M ops/s (1.02x) | 33.07M ops/s fastest | 31.22M ops/s (1.06x) | 20.93M ops/s (1.58x) |
isDate MEDIUM | 1 pts | 12.47M ops/s (1.02x) | 12.68M ops/s fastest | 11.98M ops/s (1.06x) | 6.84M ops/s (1.85x) |
isEqual arrays HIGH | 3 pts | 5.27M ops/s fastest | 2.68M ops/s (1.97x) | 2.34M ops/s (2.25x) | 3.91M ops/s (1.35x) |
isEqual dates HIGH | 3 pts | 1.66M ops/s fastest | 1.50M ops/s (1.11x) | 1.49M ops/s (1.12x) | 1.10M ops/s (1.52x) |
isEqual objects HIGH | 3 pts | 2.00M ops/s fastest | 683.45K ops/s (2.93x) | 676.28K ops/s (2.96x) | 636.93K ops/s (3.15x) |
isEqual primitives HIGH | 3 pts | 24.83M ops/s (1.01x) | 12.69M ops/s (1.98x) | 12.71M ops/s (1.98x) | 25.16M ops/s fastest |
isEqual RegExps HIGH | 3 pts | 5.75M ops/s (1.16x) | 6.37M ops/s (1.05x) | 6.66M ops/s fastest | 1.09M ops/s (6.12x) |
isError MEDIUM | 1 pts | 463.86K ops/s (1.03x) | 477.14K ops/s fastest | 468.70K ops/s (1.02x) | 415.80K ops/s (1.15x) |
isFunction MEDIUM | 1 pts | 3.86K ops/s (1x) | 3.87K ops/s fastest | 3.87K ops/s (1x) | 3.73K ops/s (1.04x) |
isMap MEDIUM | 1 pts | 12.45M ops/s fastest | 12.31M ops/s (1.01x) | 11.51M ops/s (1.08x) | 85.68K ops/s (145.3x) |
isNil MEDIUM | 1 pts | 28.28M ops/s (1.01x) | 28.49M ops/s fastest | 28.39M ops/s (1x) | 28.37M ops/s (1x) |
isNull MEDIUM | 1 pts | 26.47M ops/s (1.04x) | 25.87M ops/s (1.06x) | 27.45M ops/s fastest | 27.12M ops/s (1.01x) |
isNumber MEDIUM | 1 pts | 29.79M ops/s fastest | N/A | 28.69M ops/s (1.04x) | 12.20M ops/s (2.44x) |
isObject MEDIUM | 1 pts | 438.14K ops/s (1.02x) | N/A | 442.57K ops/s (1.01x) | 445.24K ops/s fastest |
isPlainObject MEDIUM | 1 pts | 18.64M ops/s fastest | 13.10M ops/s (1.42x) | 7.03M ops/s (2.65x) | 3.60M ops/s (5.18x) |
isRegExp MEDIUM | 1 pts | 10.58M ops/s (1.05x) | 11.16M ops/s fastest | 10.75M ops/s (1.04x) | 6.73M ops/s (1.66x) |
isSet MEDIUM | 1 pts | 16.58M ops/s fastest | 16.54M ops/s (1x) | 16.02M ops/s (1.04x) | 137.38K ops/s (120.69x) |
isString MEDIUM | 1 pts | 21.77M ops/s (1.01x) | 22.07M ops/s fastest | 20.90M ops/s (1.06x) | 13.98M ops/s (1.58x) |
isSymbol MEDIUM | 1 pts | 16.05M ops/s fastest | 15.74M ops/s (1.02x) | 15.46M ops/s (1.04x) | 12.16M ops/s (1.32x) |
isUndefined MEDIUM | 1 pts | 30.12M ops/s (1.01x) | 28.89M ops/s (1.05x) | 30.35M ops/s fastest | 29.29M ops/s (1.04x) |
| Number | ||||
clamp HIGH | 3 pts | 26.32M ops/s fastest | 25.79M ops/s (1.02x) | 26.10M ops/s (1.01x) | 25.36M ops/s (1.04x) |
inRange HIGH | 3 pts | 25.76M ops/s (1.07x) | 26.92M ops/s (1.02x) | 24.19M ops/s (1.14x) | 27.54M ops/s fastest |
random MEDIUM | 1 pts | 25.19M ops/s fastest | 24.02M ops/s (1.05x) | 20.52M ops/s (1.23x) | 21.86M ops/s (1.15x) |
toNumber HIGH | 3 pts | 11.51M ops/s fastest | N/A | 11.36M ops/s (1.01x) | 1.68M ops/s (6.87x) |
| Object | ||||
defaults HIGH | 3 pts | 8.32M ops/s fastest | N/A | 7.60M ops/s (1.1x) | 4.43M ops/s (1.88x) |
defaultsDeep HIGH | 3 pts | 4.72M ops/s (1.17x) | N/A | 5.55M ops/s fastest | 2.42M ops/s (2.3x) |
findKey HIGH | 3 pts | 23.44M ops/s fastest | 22.39M ops/s (1.05x) | 19.59M ops/s (1.2x) | 17.17M ops/s (1.36x) |
findKey largeObject HIGH | 3 pts | 1.34K ops/s (1.05x) | 1.41K ops/s fastest | 1.39K ops/s (1.01x) | 1.40K ops/s (1x) |
get arrayPath HIGH | 3 pts | 20.32M ops/s fastest | N/A | 18.42M ops/s (1.1x) | 19.52M ops/s (1.04x) |
get nested HIGH | 3 pts | 11.49M ops/s fastest | N/A | 10.78M ops/s (1.07x) | 10.09M ops/s (1.14x) |
get simple HIGH | 3 pts | 27.23M ops/s fastest | N/A | 26.50M ops/s (1.03x) | 18.92M ops/s (1.44x) |
has HIGH | 3 pts | 25.05M ops/s fastest | N/A | 15.52M ops/s (1.61x) | 16.79M ops/s (1.49x) |
has nested HIGH | 3 pts | 25.82M ops/s fastest | N/A | 9.13M ops/s (2.83x) | 7.57M ops/s (3.41x) |
invert HIGH | 3 pts | 7.72M ops/s (1.02x) | N/A | 7.84M ops/s fastest | 7.19M ops/s (1.09x) |
mapKeys CRITICAL | 5 pts | 5.23M ops/s fastest | 5.15M ops/s (1.02x) | 4.87M ops/s (1.08x) | 5.17M ops/s (1.01x) |
mapValues CRITICAL | 5 pts | 10.38M ops/s fastest | 8.17M ops/s (1.27x) | 6.37M ops/s (1.63x) | 8.33M ops/s (1.25x) |
mergeWith HIGH | 3 pts | 4.26M ops/s (1.02x) | 4.36M ops/s fastest | 1.12M ops/s (3.9x) | 3.11M ops/s (1.4x) |
omit HIGH | 3 pts | 5.82M ops/s (1.01x) | 5.89M ops/s fastest | 2.15M ops/s (2.74x) | 2.02M ops/s (2.91x) |
omit complex HIGH | 3 pts | 5.40M ops/s fastest | 5.32M ops/s (1.01x) | 628.61K ops/s (8.6x) | 366.71K ops/s (14.73x) |
omitBy HIGH | 3 pts | 12.86M ops/s fastest | 9.54M ops/s (1.35x) | 3.84M ops/s (3.35x) | 2.47M ops/s (5.2x) |
pick HIGH | 3 pts | 12.76M ops/s fastest | 11.76M ops/s (1.08x) | 10.94M ops/s (1.17x) | 3.22M ops/s (3.97x) |
pickBy HIGH | 3 pts | 12.95M ops/s fastest | 12.50M ops/s (1.04x) | 4.24M ops/s (3.05x) | 3.24M ops/s (3.99x) |
set array HIGH | 3 pts | 768.16K ops/s (1.14x) | N/A | 872.07K ops/s (1.01x) | 878.34K ops/s fastest |
set dot HIGH | 3 pts | 625.63K ops/s fastest | N/A | 449.87K ops/s (1.39x) | 534.21K ops/s (1.17x) |
| String | ||||
camelCase MEDIUM | 1 pts | 10.64M ops/s fastest | 5.33M ops/s (2x) | 2.55M ops/s (4.18x) | 3.44M ops/s (3.09x) |
capitalize MEDIUM | 1 pts | 13.46M ops/s (1.05x) | 13.83M ops/s (1.03x) | 14.18M ops/s fastest | 11.58M ops/s (1.22x) |
deburr MEDIUM | 1 pts | 3.88M ops/s (1.26x) | 4.10M ops/s (1.19x) | 4.14M ops/s (1.18x) | 4.88M ops/s fastest |
escape HIGH | 3 pts | 6.57M ops/s (1.01x) | 6.53M ops/s (1.01x) | 6.62M ops/s fastest | 5.91M ops/s (1.12x) |
escape longString HIGH | 3 pts | 234.84K ops/s (1.02x) | 238.45K ops/s (1x) | 238.65K ops/s fastest | 233.73K ops/s (1.02x) |
escapeRegExp MEDIUM | 1 pts | 1.72M ops/s (1.05x) | 1.80M ops/s fastest | 1.68M ops/s (1.07x) | 1.64M ops/s (1.1x) |
kebabCase MEDIUM | 1 pts | 1.09M ops/s fastest | 1.03M ops/s (1.06x) | 343.82K ops/s (3.18x) | 704.03K ops/s (1.56x) |
lowerFirst MEDIUM | 1 pts | 20.78M ops/s fastest | 19.36M ops/s (1.07x) | 19.30M ops/s (1.08x) | 17.38M ops/s (1.2x) |
snakeCase MEDIUM | 1 pts | 1.10M ops/s fastest | 1.05M ops/s (1.05x) | 352.57K ops/s (3.13x) | 692.38K ops/s (1.59x) |
template interpolate MEDIUM | 1 pts | 3.19M ops/s fastest | N/A | 545.08K ops/s (5.85x) | 424.79K ops/s (7.5x) |
template nested MEDIUM | 1 pts | 1.52M ops/s fastest | N/A | 475.02K ops/s (3.19x) | 390.22K ops/s (3.89x) |
truncate long ascii MEDIUM | 1 pts | 20.32M ops/s fastest | N/A | 12.82M ops/s (1.59x) | 11.65M ops/s (1.74x) |
truncate long unicode MEDIUM | 1 pts | 11.37M ops/s fastest | N/A | 88.99K ops/s (127.79x) | 48.38K ops/s (235.07x) |
truncate noop long ascii MEDIUM | 1 pts | 25.68M ops/s fastest | N/A | 14.66M ops/s (1.75x) | 16.69M ops/s (1.54x) |
truncate noop long unicode MEDIUM | 1 pts | 26.15M ops/s fastest | N/A | 96.14K ops/s (271.95x) | 53.27K ops/s (490.84x) |
truncate noop short ascii MEDIUM | 1 pts | 24.81M ops/s fastest | N/A | 14.58M ops/s (1.7x) | 15.57M ops/s (1.59x) |
truncate noop short unicode MEDIUM | 1 pts | 26.80M ops/s fastest | N/A | 7.03M ops/s (3.81x) | 3.78M ops/s (7.08x) |
truncate short ascii MEDIUM | 1 pts | 23.93M ops/s fastest | N/A | 14.27M ops/s (1.68x) | 18.52M ops/s (1.29x) |
truncate short unicode MEDIUM | 1 pts | 23.56M ops/s fastest | N/A | 6.59M ops/s (3.58x) | 3.44M ops/s (6.84x) |
unescape HIGH | 3 pts | 5.26M ops/s fastest | 4.30M ops/s (1.22x) | 4.49M ops/s (1.17x) | 4.98M ops/s (1.06x) |
unescape long HIGH | 3 pts | 26.39K ops/s fastest | 18.51K ops/s (1.43x) | 18.38K ops/s (1.44x) | 26.36K ops/s (1x) |
words MEDIUM | 1 pts | 3.76M ops/s fastest | 395.31K ops/s (9.51x) | 315.69K ops/s (11.9x) | 2.19M ops/s (1.71x) |
| Util | ||||
defaultTo HIGH | 3 pts | 30.44M ops/s (1.01x) | N/A | 30.19M ops/s (1.02x) | 30.76M ops/s fastest |
range HIGH | 3 pts | 10.07M ops/s (1.03x) | 10.41M ops/s fastest | 9.49M ops/s (1.1x) | 5.53M ops/s (1.88x) |
times HIGH | 3 pts | 928.79K ops/s (1.11x) | N/A | 1.03M ops/s fastest | 859.05K ops/s (1.2x) |
uniqueId MEDIUM | 1 pts | 11.80M ops/s fastest | N/A | 11.59M ops/s (1.02x) | 8.56M ops/s (1.38x) |
lowerCase emoji | 2.22M ops/s fastest | 864.71K ops/s (2.57x) | 535.04K ops/s (4.15x) | 1.77M ops/s (1.25x) |
lowerCase longString | 10.72K ops/s fastest | 8.67K ops/s (1.24x) | 2.07K ops/s (5.19x) | 9.59K ops/s (1.12x) |
lowerCase shortString | 12.40M ops/s fastest | 6.34M ops/s (1.96x) | 2.82M ops/s (4.4x) | 4.37M ops/s (2.84x) |
upperCase emoji | 1.82M ops/s fastest | 873.17K ops/s (2.09x) | 537.98K ops/s (3.39x) | 1.59M ops/s (1.15x) |
upperCase longString | 7.02K ops/s (1.06x) | 7.46K ops/s fastest | 2.24K ops/s (3.33x) | 6.63K ops/s (1.13x) |
upperCase shortString | 8.00M ops/s fastest | 6.13M ops/s (1.31x) | 2.79M ops/s (2.87x) | 3.61M ops/s (2.21x) |
📊 Performance Summary
arkhe
es-toolkit
lodash-es📈 Weighted Performance Summary
Scores weighted by real-world importance: CRITICAL (5 pts) > HIGH (3 pts) > MEDIUM (1 pt) > LOW (0.5 pts).
🏆 arkhe leads with 249.0 pts (48% of max)
arkhe
es-toolkit
lodash-esWins by Category
Why Arkhe Is Slower Sometimes
Arkhe occasionally loses a benchmark, not because of poor optimization, but because it does more work than the competitor.
Correctness over raw speed. Some functions do extra work to return correct results:
| Function | What Arkhe does extra | Why it matters |
|---|---|---|
intersectionWith | Deduplicates the result | A set intersection should not contain duplicates. es-toolkit returns them as-is. |
Fail-fast validation. Arkhe validates inputs early and throws on invalid arguments. This adds a few bytes and nanoseconds, but catches bugs at the call site instead of producing silent wrong results downstream. When you see a
on bundle or perf, this trade-off may be the reason.
When comparing numbers, always check whether the competing function actually does the same work. A faster function that returns wrong results is not faster - it's incomplete.
If a function appears slower on small inputs but equal or faster on large inputs, the overhead is likely input validation or deduplication: work that pays off at scale and prevents bugs.
Balanced Overview
Bundle size and performance tell different stories. This section crosses both to show where Arkhe wins on each axis.
Compared against es-toolkit, es-toolkit/compat and lodash-es (the same libraries as above). Bundle = smallest or within 10%. Perf = fastest in at least one scenario.
93% of utilities win on at least one axis. 45 win on both bundle + perf, 33 bundle only, 18 perf only.
📊 Bundle + Performance
✅ Bundle + Perf
📦 Bundle only
⚡ Perf only- ✅ Bundle + Perf: Arkhe wins (or is comparable) on both axes
- 📦 Bundle only: Smaller bundle, but not the fastest
- ⚡ Perf only: Fastest, but not the smallest bundle
- ⬜ Neither: Another library wins on both
The "Perf matters?" column tells you if the performance difference actually impacts your app. A debounce marked ⬜ is not a concern: you call it once. A groupBy marked
with weight CRITICAL is where Arkhe delivers real value.
Full function-by-function breakdown
| Function | Perf matters? | Bundle | Perf | Verdict |
|---|---|---|---|---|
| chunk | CRITICAL | ✅ -4% | ❌ 0/2 | 📦 Bundle only |
| countBy | CRITICAL | ✅ 0% | ❌ 0/2 | 📦 Bundle only |
| difference | CRITICAL | ❌ +113% | ✅ 1/2 | ⚡ Perf only |
| differenceBy | CRITICAL | ❌ +47% | ✅ 1/2 | ⚡ Perf only |
| differenceWith | CRITICAL | ✅ -1% | ❌ 0/2 | 📦 Bundle only |
| drop | CRITICAL | ❌ +34% | ❌ 0/2 | ⬜ Neither |
| dropRight | CRITICAL | ❌ +30% | ✅ 1/2 | ⚡ Perf only |
| dropRightWhile | CRITICAL | ❌ +13% | ✅ 2/2 | ⚡ Perf only |
| dropWhile | CRITICAL | ✅ -5% | ✅ 2/2 | ✅ Bundle + Perf |
| fill | CRITICAL | ❌ +28% | ✅ 2/2 | ⚡ Perf only |
| findLast | CRITICAL | ✅ -98% | ✅ 2/2 | ✅ Bundle + Perf |
| findLastIndex | CRITICAL | ✅ -98% | ✅ 2/2 | ✅ Bundle + Perf |
| groupBy | CRITICAL | ✅ -14% | ✅ 2/2 | ✅ Bundle + Perf |
| intersection | CRITICAL | ❌ +128% | ❌ 0/2 | ⬜ Neither |
| intersectionBy | CRITICAL | ❌ +96% | ✅ 1/2 | ⚡ Perf only |
| intersectionWith | CRITICAL | ❌ +224% | ✅ 1/2 | ⚡ Perf only |
| keyBy | CRITICAL | ✅ -9% | ✅ 1/2 | ✅ Bundle + Perf |
| mapKeys | CRITICAL | ✅ -1% | ✅ 1/1 | ✅ Bundle + Perf |
| mapValues | CRITICAL | ✅ 0% | ✅ 1/1 | ✅ Bundle + Perf |
| maxBy | CRITICAL | ✅ -3% | ✅ 1/2 | ✅ Bundle + Perf |
| minBy | CRITICAL | ✅ -3% | ❌ 0/2 | 📦 Bundle only |
| orderBy | CRITICAL | ✅ -4% | ❌ 0/2 | 📦 Bundle only |
| partition | CRITICAL | ✅ 0% | ✅ 1/2 | ✅ Bundle + Perf |
| reverse | CRITICAL | ✅ -7% | ❌ 0/1 | 📦 Bundle only |
| take | CRITICAL | ✅ -43% | ❌ 0/2 | 📦 Bundle only |
| takeRight | CRITICAL | ✅ -47% | ✅ 1/2 | ✅ Bundle + Perf |
| takeRightWhile | CRITICAL | ✅ 0% | ❌ 0/2 | 📦 Bundle only |
| takeWhile | CRITICAL | ✅ -8% | ❌ 0/2 | 📦 Bundle only |
| union | CRITICAL | ❌ +42% | ✅ 1/2 | ⚡ Perf only |
| unionBy | CRITICAL | ✅ -11% | ✅ 1/2 | ✅ Bundle + Perf |
| unionWith | CRITICAL | ✅ -13% | ✅ 1/2 | ✅ Bundle + Perf |
| uniq | CRITICAL | ❌ +176% | ✅ 2/2 | ⚡ Perf only |
| uniqBy | CRITICAL | ✅ -14% | ❌ 0/2 | 📦 Bundle only |
| uniqWith | CRITICAL | ✅ -8% | ❌ 0/2 | 📦 Bundle only |
| unzip | CRITICAL | ❌ +42% | ✅ 1/2 | ⚡ Perf only |
| xor | CRITICAL | ❌ +21% | ❌ 0/2 | ⬜ Neither |
| zip | CRITICAL | ❌ +11% | ✅ 2/2 | ⚡ Perf only |
| zipWith | CRITICAL | ✅ -9% | ✅ 1/2 | ✅ Bundle + Perf |
| clamp | HIGH | ❌ +33% | ✅ 1/1 | ⚡ Perf only |
| defaults | HIGH | ✅ -95% | ✅ 1/1 | ✅ Bundle + Perf |
| defaultsDeep | HIGH | ✅ -42% | ❌ 0/1 | 📦 Bundle only |
| defaultTo | HIGH | ❌ +15% | ❌ 0/1 | ⬜ Neither |
| escape | HIGH | ✅ +8% | ❌ 0/2 | 📦 Bundle only |
| findKey | HIGH | ❌ +28% | ✅ 1/2 | ⚡ Perf only |
| get | HIGH | ✅ -78% | ✅ 3/3 | ✅ Bundle + Perf |
| has | HIGH | ✅ -97% | ✅ 2/2 | ✅ Bundle + Perf |
| inRange | HIGH | ✅ -32% | ❌ 0/1 | 📦 Bundle only |
| invert | HIGH | ✅ -4% | ❌ 0/1 | 📦 Bundle only |
| isEqual | HIGH | ✅ -61% | ✅ 3/5 | ✅ Bundle + Perf |
| mergeWith | HIGH | ✅ -30% | ❌ 0/1 | 📦 Bundle only |
| omit | HIGH | ✅ -16% | ✅ 1/2 | ✅ Bundle + Perf |
| omitBy | HIGH | ✅ -1% | ✅ 1/1 | ✅ Bundle + Perf |
| pick | HIGH | ✅ -2% | ✅ 1/1 | ✅ Bundle + Perf |
| pickBy | HIGH | ✅ +1% | ✅ 1/1 | ✅ Bundle + Perf |
| range | HIGH | ✅ -7% | ❌ 0/1 | 📦 Bundle only |
| set | HIGH | ✅ -67% | ✅ 1/2 | ✅ Bundle + Perf |
| times | HIGH | ✅ -32% | ❌ 0/1 | 📦 Bundle only |
| toArray | HIGH | ✅ -80% | ✅ 1/1 | ✅ Bundle + Perf |
| toNumber | HIGH | ✅ -86% | ✅ 1/1 | ✅ Bundle + Perf |
| unescape | HIGH | ✅ +3% | ✅ 2/2 | ✅ Bundle + Perf |
| camelCase | MEDIUM | ❌ +12% | ✅ 1/1 | ⚡ Perf only |
| capitalize | MEDIUM | ❌ +13% | ❌ 0/1 | ⬜ Neither |
| deburr | MEDIUM | ✅ +4% | ❌ 0/1 | 📦 Bundle only |
| isArray | MEDIUM | ✅ -82% | ❌ 0/1 | 📦 Bundle only |
| isArrayBuffer | MEDIUM | ✅ -21% | ✅ 1/1 | ✅ Bundle + Perf |
| isBoolean | MEDIUM | ✅ -15% | ❌ 0/1 | 📦 Bundle only |
| isDate | MEDIUM | ✅ -14% | ❌ 0/1 | 📦 Bundle only |
| isError | MEDIUM | ✅ -14% | ❌ 0/1 | 📦 Bundle only |
| isFunction | MEDIUM | ✅ -8% | ❌ 0/1 | 📦 Bundle only |
| isMap | MEDIUM | ✅ -24% | ✅ 1/1 | ✅ Bundle + Perf |
| isNil | MEDIUM | ✅ -17% | ❌ 0/1 | 📦 Bundle only |
| isNull | MEDIUM | ✅ -16% | ❌ 0/1 | 📦 Bundle only |
| isNumber | MEDIUM | ✅ -27% | ✅ 1/1 | ✅ Bundle + Perf |
| isObject | MEDIUM | ✅ -75% | ❌ 0/1 | 📦 Bundle only |
| isPlainObject | MEDIUM | ✅ -22% | ✅ 1/1 | ✅ Bundle + Perf |
| isSet | MEDIUM | ✅ -24% | ✅ 1/1 | ✅ Bundle + Perf |
| isString | MEDIUM | ✅ -15% | ❌ 0/1 | 📦 Bundle only |
| isSymbol | MEDIUM | ✅ -15% | ✅ 1/1 | ✅ Bundle + Perf |
| isUndefined | MEDIUM | ✅ -15% | ❌ 0/1 | 📦 Bundle only |
| kebabCase | MEDIUM | ✅ -6% | ✅ 1/1 | ✅ Bundle + Perf |
| lowerFirst | MEDIUM | ❌ +11% | ✅ 1/1 | ⚡ Perf only |
| random | MEDIUM | ✅ -26% | ✅ 1/1 | ✅ Bundle + Perf |
| sample | MEDIUM | ✅ +3% | ✅ 1/2 | ✅ Bundle + Perf |
| sampleSize | MEDIUM | ✅ -29% | ✅ 2/2 | ✅ Bundle + Perf |
| shuffle | MEDIUM | ✅ +1% | ❌ 0/2 | 📦 Bundle only |
| snakeCase | MEDIUM | ✅ -6% | ✅ 1/1 | ✅ Bundle + Perf |
| template | MEDIUM | ✅ -85% | ✅ 2/2 | ✅ Bundle + Perf |
| truncate | MEDIUM | ✅ -88% | ✅ 8/8 | ✅ Bundle + Perf |
| uniqueId | MEDIUM | ✅ -14% | ✅ 1/1 | ✅ Bundle + Perf |
| words | MEDIUM | ❌ +35% | ✅ 1/1 | ⚡ Perf only |
| after | LOW | ✅ +6% | ❌ 0/1 | 📦 Bundle only |
| before | LOW | ✅ +8% | ❌ 0/1 | 📦 Bundle only |
| curry | LOW | ❌ +52% | ❌ 0/1 | ⬜ Neither |
| debounce | LOW | ✅ -18% | ✅ 1/1 | ✅ Bundle + Perf |
| flip | LOW | ✅ -18% | ✅ 1/1 | ✅ Bundle + Perf |
| flowRight | LOW | ✅ -22% | ✅ 1/1 | ✅ Bundle + Perf |
| memoize | LOW | ❌ +48% | ❌ 0/1 | ⬜ Neither |
| negate | LOW | ✅ -3% | ✅ 1/1 | ✅ Bundle + Perf |
| noop | LOW | ✅ -2% | ❌ 0/1 | 📦 Bundle only |
| once | LOW | ✅ -4% | ✅ 1/1 | ✅ Bundle + Perf |
| throttle | LOW | ✅ -34% | ✅ 1/1 | ✅ Bundle + Perf |
| lowerCase | - | ❌ +196% | ✅ 3/3 | ⚡ Perf only |
| upperCase | - | ❌ +149% | ✅ 2/3 | ⚡ Perf only |
Key Takeaways
Arkhe is consistently fast. No wild variations: you get predictable performance across all utilities.
es-toolkit/compat pays a price. Their lodash compatibility layer often performs worse than lodash-es itself (see omit, intersectionWith). When you prioritize API compatibility, you inherit the constraints.
Arkhe makes its own choices. We don't mimic Lodash's API. This freedom lets us optimize for modern JavaScript without legacy constraints.
Why Arkhe is Fast (on small/medium data)
- ES2020+ target: No transpilation overhead, modern JavaScript features
- No legacy checks: We don't test for IE edge cases
- Simpler internals: Less abstraction, more direct code
- TypeScript-first: Types are compile-time, zero runtime cost
When Lodash Wins (on large arrays)
Lodash sometimes uses different algorithms optimized for large datasets:
- Hash-based lookups for
intersection,differenceon 10K+ items - Lazy evaluation in some chained operations
- Years of production optimizations refined through real-world usage
For most real-world code, arrays are small (< 100 items) and Arkhe's simpler approach wins. On large arrays, results vary by function: Arkhe is competitive or faster in many cases.
Detailed Statistics
For the skeptics who want to see the raw numbers:
Array78
chunk
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 20.49M | 0.0000 | 0.0310 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 10,245,611 |
| arkhe | 14.32M | 0.0000 | 0.0320 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 7,159,973 |
| es-toolkit | 14.31M | 0.0000 | 0.1308 | 0.0001 | 0.0001 | 0.0001 | ±0.11% | 7,153,409 |
| es-toolkit/compat | 14.20M | 0.0000 | 0.0309 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 7,097,783 |
chunk largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 292.63K | 0.0027 | 0.1236 | 0.0034 | 0.0035 | 0.0043 | ±0.33% | 146,314 |
| arkhe | 292.39K | 0.0027 | 0.1305 | 0.0034 | 0.0035 | 0.0045 | ±0.36% | 146,194 |
| es-toolkit | 289.24K | 0.0027 | 0.1809 | 0.0035 | 0.0036 | 0.0048 | ±0.36% | 144,619 |
| lodash-es | 97.64K | 0.0098 | 0.2450 | 0.0102 | 0.0102 | 0.0142 | ±0.23% | 48,823 |
countBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 5.84M | 0.0000 | 0.1119 | 0.0002 | 0.0002 | 0.0002 | ±0.14% | 2,919,604 |
| arkhe | 5.12M | 0.0001 | 0.3841 | 0.0002 | 0.0002 | 0.0003 | ±0.23% | 2,562,239 |
| lodash-es | 4.77M | 0.0001 | 0.1477 | 0.0002 | 0.0002 | 0.0003 | ±0.14% | 2,386,911 |
countBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 6.36K | 0.1483 | 4.1280 | 0.1572 | 0.1549 | 0.1936 | ±1.58% | 3,180 |
| arkhe | 6.29K | 0.1509 | 0.3084 | 0.1590 | 0.1569 | 0.2651 | ±0.32% | 3,145 |
| lodash-es | 3.69K | 0.2533 | 0.4523 | 0.2713 | 0.2714 | 0.3106 | ±0.19% | 1,844 |
difference
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 21.76M | 0.0000 | 0.1475 | 0.0000 | 0.0000 | 0.0001 | ±0.24% | 10,881,864 |
| es-toolkit | 13.27M | 0.0000 | 0.1216 | 0.0001 | 0.0001 | 0.0001 | ±0.21% | 6,634,374 |
| es-toolkit/compat | 10.23M | 0.0000 | 0.1527 | 0.0001 | 0.0001 | 0.0001 | ±0.26% | 5,113,978 |
| lodash-es | 6.03M | 0.0000 | 0.0285 | 0.0002 | 0.0002 | 0.0002 | ±0.07% | 3,013,933 |
difference largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 9.05K | 0.1039 | 0.3530 | 0.1105 | 0.1097 | 0.1315 | ±0.22% | 4,527 |
| arkhe | 4.99K | 0.1905 | 0.4153 | 0.2004 | 0.2020 | 0.2267 | ±0.23% | 2,495 |
| es-toolkit/compat | 4.72K | 0.1950 | 0.4107 | 0.2117 | 0.2130 | 0.2376 | ±0.23% | 2,362 |
| es-toolkit | 3.66K | 0.2556 | 0.5100 | 0.2729 | 0.2762 | 0.3069 | ±0.24% | 1,832 |
differenceBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 9.07M | 0.0000 | 2.7703 | 0.0001 | 0.0001 | 0.0002 | ±1.41% | 4,534,222 |
| arkhe | 7.62M | 0.0000 | 0.1219 | 0.0001 | 0.0001 | 0.0002 | ±0.19% | 3,809,801 |
| es-toolkit/compat | 6.93M | 0.0000 | 0.1565 | 0.0001 | 0.0002 | 0.0002 | ±0.24% | 3,462,871 |
| lodash-es | 5.70M | 0.0001 | 0.2284 | 0.0002 | 0.0002 | 0.0002 | ±0.25% | 2,847,996 |
differenceBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.66K | 0.0735 | 0.3113 | 0.0790 | 0.0796 | 0.1000 | ±0.32% | 6,332 |
| lodash-es | 8.61K | 0.1084 | 0.3073 | 0.1162 | 0.1177 | 0.1402 | ±0.29% | 4,305 |
| es-toolkit/compat | 2.88K | 0.3292 | 0.6973 | 0.3470 | 0.3525 | 0.4152 | ±0.33% | 1,442 |
| es-toolkit | 2.85K | 0.3245 | 7.3889 | 0.3510 | 0.3530 | 0.3963 | ±2.77% | 1,425 |
differenceWith
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 20.84M | 0.0000 | 2.4945 | 0.0000 | 0.0000 | 0.0001 | ±1.01% | 10,422,097 |
| arkhe | 20.69M | 0.0000 | 0.1505 | 0.0000 | 0.0000 | 0.0001 | ±0.10% | 10,346,862 |
| es-toolkit/compat | 8.73M | 0.0000 | 0.1753 | 0.0001 | 0.0001 | 0.0002 | ±0.26% | 4,362,526 |
| lodash-es | 6.19M | 0.0000 | 0.0272 | 0.0002 | 0.0002 | 0.0002 | ±0.08% | 3,092,854 |
differenceWith largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 19.30 | 51.5020 | 52.2243 | 51.8065 | 51.8732 | 52.2243 | ±0.27% | 10 |
| es-toolkit/compat | 18.75 | 52.8583 | 53.9448 | 53.3465 | 53.4730 | 53.9448 | ±0.40% | 10 |
| es-toolkit | 18.39 | 53.7263 | 55.3978 | 54.3767 | 54.7135 | 55.3978 | ±0.65% | 10 |
| arkhe | 17.99 | 54.8231 | 56.4408 | 55.5846 | 55.8425 | 56.4408 | ±0.56% | 10 |
drop
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 25.37M | 0.0000 | 0.0286 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 12,685,342 |
| arkhe | 21.55M | 0.0000 | 5.0866 | 0.0000 | 0.0000 | 0.0001 | ±2.15% | 10,777,125 |
| es-toolkit/compat | 18.78M | 0.0000 | 0.2414 | 0.0001 | 0.0001 | 0.0001 | ±0.12% | 9,388,935 |
| es-toolkit | 18.69M | 0.0000 | 0.1300 | 0.0001 | 0.0001 | 0.0001 | ±0.11% | 9,347,193 |
drop largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 1.75M | 0.0004 | 0.1585 | 0.0006 | 0.0006 | 0.0007 | ±0.27% | 873,769 |
| arkhe | 1.72M | 0.0004 | 0.0843 | 0.0006 | 0.0006 | 0.0007 | ±0.27% | 858,420 |
| es-toolkit | 1.72M | 0.0004 | 0.0839 | 0.0006 | 0.0006 | 0.0007 | ±0.26% | 858,034 |
| lodash-es | 176.89K | 0.0052 | 0.2424 | 0.0057 | 0.0057 | 0.0075 | ±0.18% | 88,444 |
dropRight
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 27.62M | 0.0000 | 0.0312 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 13,811,942 |
| es-toolkit | 19.88M | 0.0000 | 0.0873 | 0.0001 | 0.0000 | 0.0001 | ±0.09% | 9,941,617 |
| es-toolkit/compat | 18.24M | 0.0000 | 5.1911 | 0.0001 | 0.0001 | 0.0001 | ±2.04% | 9,120,743 |
| arkhe | 17.85M | 0.0000 | 10.6173 | 0.0001 | 0.0001 | 0.0001 | ±4.23% | 8,926,009 |
dropRight largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.72M | 0.0004 | 0.0623 | 0.0006 | 0.0006 | 0.0007 | ±0.26% | 858,702 |
| es-toolkit | 1.72M | 0.0004 | 0.0979 | 0.0006 | 0.0006 | 0.0007 | ±0.25% | 858,686 |
| es-toolkit/compat | 1.71M | 0.0004 | 0.0562 | 0.0006 | 0.0006 | 0.0007 | ±0.25% | 853,785 |
| lodash-es | 194.64K | 0.0048 | 0.0833 | 0.0051 | 0.0051 | 0.0065 | ±0.14% | 97,320 |
dropRightWhile
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 18.70M | 0.0000 | 0.0348 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 9,348,309 |
| es-toolkit | 18.49M | 0.0000 | 0.1012 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 9,245,009 |
| es-toolkit/compat | 14.74M | 0.0000 | 0.2132 | 0.0001 | 0.0001 | 0.0001 | ±0.24% | 7,371,019 |
| lodash-es | 14.12M | 0.0000 | 0.0319 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 7,059,937 |
dropRightWhile largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 808.08K | 0.0008 | 0.0673 | 0.0012 | 0.0012 | 0.0014 | ±0.29% | 404,039 |
| es-toolkit | 798.95K | 0.0008 | 0.0821 | 0.0013 | 0.0013 | 0.0014 | ±0.28% | 399,478 |
| es-toolkit/compat | 251.66K | 0.0025 | 0.0870 | 0.0040 | 0.0040 | 0.0045 | ±0.24% | 125,833 |
| lodash-es | 59.50K | 0.0153 | 0.1669 | 0.0168 | 0.0172 | 0.0230 | ±0.32% | 29,751 |
dropWhile
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 20.44M | 0.0000 | 0.0324 | 0.0000 | 0.0000 | 0.0001 | ±0.04% | 10,221,232 |
| es-toolkit | 19.73M | 0.0000 | 0.2095 | 0.0001 | 0.0000 | 0.0001 | ±0.19% | 9,863,147 |
| lodash-es | 14.68M | 0.0000 | 0.2654 | 0.0001 | 0.0001 | 0.0001 | ±0.41% | 7,340,017 |
| es-toolkit/compat | 14.15M | 0.0000 | 0.2229 | 0.0001 | 0.0001 | 0.0001 | ±0.39% | 7,076,347 |
dropWhile largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 340.90K | 0.0026 | 0.0564 | 0.0029 | 0.0029 | 0.0033 | ±0.13% | 170,452 |
| lodash-es | 30.90K | 0.0294 | 0.2329 | 0.0324 | 0.0325 | 0.0363 | ±0.22% | 15,450 |
| es-toolkit | 26.03K | 0.0365 | 0.1813 | 0.0384 | 0.0386 | 0.0445 | ±0.12% | 13,014 |
| es-toolkit/compat | 15.13K | 0.0625 | 0.1642 | 0.0661 | 0.0663 | 0.0730 | ±0.07% | 7,564 |
fill
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 27.06M | 0.0000 | 1.5075 | 0.0000 | 0.0000 | 0.0001 | ±0.66% | 13,527,819 |
| es-toolkit/compat | 19.99M | 0.0000 | 1.1430 | 0.0001 | 0.0000 | 0.0001 | ±0.70% | 9,992,502 |
| lodash-es | 19.00M | 0.0000 | 9.3801 | 0.0001 | 0.0000 | 0.0001 | ±3.77% | 9,498,523 |
| es-toolkit | 18.66M | 0.0000 | 0.4829 | 0.0001 | 0.0001 | 0.0001 | ±0.23% | 9,328,219 |
fill customRange
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 26.79M | 0.0000 | 2.1211 | 0.0000 | 0.0000 | 0.0001 | ±0.90% | 13,397,460 |
| es-toolkit | 20.65M | 0.0000 | 1.5007 | 0.0000 | 0.0000 | 0.0001 | ±0.96% | 10,326,297 |
| es-toolkit/compat | 20.39M | 0.0000 | 2.1288 | 0.0000 | 0.0000 | 0.0001 | ±0.91% | 10,195,879 |
| lodash-es | 17.95M | 0.0000 | 1.8273 | 0.0001 | 0.0001 | 0.0001 | ±0.75% | 8,975,136 |
findLast
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 27.53M | 0.0000 | 0.0462 | 0.0000 | 0.0000 | 0.0000 | ±0.09% | 13,766,298 |
| lodash-es | 13.94M | 0.0000 | 0.0525 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 6,968,928 |
| es-toolkit/compat | 13.53M | 0.0000 | 1.8676 | 0.0001 | 0.0001 | 0.0001 | ±0.96% | 6,763,878 |
findLast largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 53.91K | 0.0180 | 0.0475 | 0.0185 | 0.0187 | 0.0236 | ±0.08% | 26,956 |
| lodash-es | 31.74K | 0.0294 | 0.0536 | 0.0315 | 0.0315 | 0.0385 | ±0.08% | 15,868 |
| es-toolkit/compat | 27.29K | 0.0350 | 4.1038 | 0.0366 | 0.0360 | 0.0465 | ±1.60% | 13,645 |
findLastIndex
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 30.56M | 0.0000 | 0.0344 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 15,278,873 |
| lodash-es | 29.53M | 0.0000 | 0.1430 | 0.0000 | 0.0000 | 0.0000 | ±0.10% | 14,767,058 |
| es-toolkit/compat | 16.37M | 0.0000 | 2.3856 | 0.0001 | 0.0001 | 0.0001 | ±0.95% | 8,183,851 |
findLastIndex largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 54.67K | 0.0177 | 0.0467 | 0.0183 | 0.0183 | 0.0234 | ±0.07% | 27,335 |
| lodash-es | 32.08K | 0.0285 | 0.0590 | 0.0312 | 0.0314 | 0.0371 | ±0.08% | 16,040 |
| es-toolkit/compat | 28.01K | 0.0340 | 0.2582 | 0.0357 | 0.0353 | 0.0453 | ±0.19% | 14,004 |
groupBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 8.97M | 0.0000 | 0.1650 | 0.0001 | 0.0001 | 0.0003 | ±0.29% | 4,487,281 |
| lodash-es | 7.58M | 0.0000 | 0.2158 | 0.0001 | 0.0001 | 0.0002 | ±0.29% | 3,790,333 |
| es-toolkit | 6.90M | 0.0000 | 0.2070 | 0.0001 | 0.0002 | 0.0002 | ±0.24% | 3,448,600 |
| es-toolkit/compat | 5.45M | 0.0001 | 0.1221 | 0.0002 | 0.0002 | 0.0003 | ±0.19% | 2,723,863 |
groupBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.07K | 0.0782 | 0.2641 | 0.0828 | 0.0820 | 0.1010 | ±0.21% | 6,036 |
| es-toolkit | 7.70K | 0.1217 | 0.2879 | 0.1299 | 0.1315 | 0.1514 | ±0.20% | 3,850 |
| es-toolkit/compat | 6.42K | 0.1471 | 0.3233 | 0.1557 | 0.1558 | 0.1821 | ±0.21% | 3,211 |
| lodash-es | 5.67K | 0.1627 | 0.3473 | 0.1763 | 0.1805 | 0.2018 | ±0.22% | 2,836 |
intersection
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 12.05M | 0.0000 | 0.2138 | 0.0001 | 0.0001 | 0.0001 | ±0.27% | 6,025,772 |
| arkhe | 8.39M | 0.0000 | 0.0320 | 0.0001 | 0.0001 | 0.0002 | ±0.08% | 4,197,000 |
| es-toolkit/compat | 7.12M | 0.0000 | 0.1689 | 0.0001 | 0.0002 | 0.0002 | ±0.23% | 3,560,186 |
| lodash-es | 5.61M | 0.0001 | 0.1804 | 0.0002 | 0.0002 | 0.0002 | ±0.22% | 2,803,623 |
intersection largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 4.05K | 0.2354 | 0.5294 | 0.2472 | 0.2474 | 0.2742 | ±0.19% | 2,023 |
| arkhe | 2.42K | 0.3938 | 0.6706 | 0.4126 | 0.4160 | 0.4585 | ±0.21% | 1,212 |
| es-toolkit/compat | 2.24K | 0.4250 | 0.6684 | 0.4471 | 0.4507 | 0.5055 | ±0.23% | 1,119 |
| es-toolkit | 2.16K | 0.4381 | 0.7084 | 0.4633 | 0.4660 | 0.5354 | ±0.23% | 1,080 |
intersectionBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 10.79M | 0.0000 | 0.1631 | 0.0001 | 0.0001 | 0.0001 | ±0.19% | 5,393,506 |
| es-toolkit | 8.91M | 0.0000 | 0.1890 | 0.0001 | 0.0001 | 0.0002 | ±0.21% | 4,454,710 |
| es-toolkit/compat | 4.64M | 0.0001 | 0.1547 | 0.0002 | 0.0002 | 0.0003 | ±0.18% | 2,318,099 |
| lodash-es | 1.97M | 0.0004 | 0.1512 | 0.0005 | 0.0005 | 0.0007 | ±0.22% | 985,040 |
intersectionBy largeArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 1.48K | 0.6365 | 3.1288 | 0.6736 | 0.6629 | 0.7657 | ±1.91% | 743 |
| arkhe | 1.46K | 0.6498 | 3.1317 | 0.6872 | 0.6795 | 0.7322 | ±1.70% | 728 |
| lodash-es | 1.19K | 0.8133 | 2.2339 | 0.8385 | 0.8348 | 1.4020 | ±0.81% | 597 |
| es-toolkit/compat | 896 | 1.0441 | 3.5515 | 1.1157 | 1.0959 | 2.7594 | ±1.97% | 449 |
intersectionWith
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 20.15M | 0.0000 | 0.2264 | 0.0000 | 0.0000 | 0.0001 | ±0.46% | 10,073,058 |
| es-toolkit | 19.31M | 0.0000 | 0.2188 | 0.0001 | 0.0000 | 0.0001 | ±0.31% | 9,655,329 |
| lodash-es | 5.03M | 0.0001 | 0.2184 | 0.0002 | 0.0002 | 0.0003 | ±0.33% | 2,514,505 |
| es-toolkit/compat | 4.61M | 0.0001 | 0.1845 | 0.0002 | 0.0002 | 0.0003 | ±0.32% | 2,307,091 |
intersectionWith largeArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 3.16 | 314.5700 | 318.1800 | 316.1700 | 316.3000 | 318.1800 | ±0.21% | 10 |
| es-toolkit | 3.16 | 315.7800 | 318.2100 | 316.8800 | 317.1600 | 318.2100 | ±0.16% | 10 |
| arkhe | 3.15 | 316.6000 | 318.6800 | 317.5200 | 317.9000 | 318.6800 | ±0.14% | 10 |
| lodash-es | 2.73 | 365.2400 | 369.2200 | 366.2000 | 366.3600 | 369.2200 | ±0.22% | 10 |
keyBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.15M | 0.0000 | 0.2180 | 0.0001 | 0.0001 | 0.0001 | ±0.33% | 6,076,261 |
| es-toolkit | 11.87M | 0.0000 | 2.5834 | 0.0001 | 0.0001 | 0.0001 | ±1.04% | 5,937,267 |
| lodash-es | 10.57M | 0.0000 | 0.1840 | 0.0001 | 0.0001 | 0.0001 | ±0.19% | 5,285,229 |
| es-toolkit/compat | 9.38M | 0.0000 | 0.1786 | 0.0001 | 0.0001 | 0.0001 | ±0.21% | 4,687,978 |
keyBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 2.24K | 0.4053 | 2.4639 | 0.4467 | 0.4405 | 0.5341 | ±1.98% | 1,120 |
| arkhe | 2.23K | 0.4040 | 2.8719 | 0.4481 | 0.4430 | 0.5252 | ±2.15% | 1,116 |
| es-toolkit/compat | 2.07K | 0.4464 | 2.3817 | 0.4830 | 0.4743 | 0.5372 | ±1.92% | 1,036 |
| lodash-es | 2.04K | 0.4392 | 2.3790 | 0.4903 | 0.4815 | 0.6137 | ±1.99% | 1,020 |
maxBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 28.32M | 0.0000 | 0.1264 | 0.0000 | 0.0000 | 0.0000 | ±0.23% | 14,158,963 |
| arkhe | 27.62M | 0.0000 | 0.2555 | 0.0000 | 0.0000 | 0.0000 | ±0.36% | 13,811,169 |
| lodash-es | 24.38M | 0.0000 | 0.2810 | 0.0000 | 0.0000 | 0.0001 | ±0.36% | 12,190,758 |
| es-toolkit/compat | 14.90M | 0.0000 | 0.2220 | 0.0001 | 0.0001 | 0.0001 | ±0.38% | 7,450,343 |
maxBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 112.77K | 0.0079 | 0.0367 | 0.0089 | 0.0081 | 0.0124 | ±0.16% | 56,387 |
| es-toolkit | 112.41K | 0.0079 | 0.0346 | 0.0089 | 0.0081 | 0.0127 | ±0.16% | 56,206 |
| es-toolkit/compat | 21.86K | 0.0433 | 0.3655 | 0.0457 | 0.0450 | 0.0577 | ±0.26% | 10,932 |
| lodash-es | 21.12K | 0.0455 | 0.0830 | 0.0473 | 0.0471 | 0.0545 | ±0.07% | 10,561 |
minBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 26.04M | 0.0000 | 0.1950 | 0.0000 | 0.0000 | 0.0001 | ±0.20% | 13,022,126 |
| arkhe | 25.77M | 0.0000 | 0.2621 | 0.0000 | 0.0000 | 0.0001 | ±0.32% | 12,885,715 |
| lodash-es | 23.70M | 0.0000 | 7.3757 | 0.0000 | 0.0000 | 0.0001 | ±2.90% | 11,847,682 |
| es-toolkit/compat | 13.06M | 0.0000 | 2.0773 | 0.0001 | 0.0001 | 0.0001 | ±0.86% | 6,528,472 |
minBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 108.56K | 0.0086 | 0.0260 | 0.0092 | 0.0090 | 0.0115 | ±0.09% | 54,279 |
| arkhe | 106.61K | 0.0089 | 0.0357 | 0.0094 | 0.0091 | 0.0117 | ±0.08% | 53,307 |
| es-toolkit/compat | 22.33K | 0.0420 | 0.4121 | 0.0448 | 0.0444 | 0.0533 | ±0.48% | 11,168 |
| lodash-es | 21.07K | 0.0458 | 0.0850 | 0.0475 | 0.0473 | 0.0545 | ±0.05% | 10,534 |
orderBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 4.14M | 0.0001 | 1.6489 | 0.0002 | 0.0003 | 0.0003 | ±0.66% | 2,071,547 |
| arkhe | 3.90M | 0.0001 | 0.1898 | 0.0003 | 0.0003 | 0.0004 | ±0.20% | 1,952,384 |
| es-toolkit/compat | 2.62M | 0.0003 | 0.1503 | 0.0004 | 0.0004 | 0.0005 | ±0.13% | 1,312,073 |
| lodash-es | 2.14M | 0.0003 | 0.1485 | 0.0005 | 0.0005 | 0.0007 | ±0.21% | 1,071,897 |
orderBy withFunctions
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 4.23M | 0.0001 | 4.1114 | 0.0002 | 0.0003 | 0.0004 | ±1.63% | 2,114,047 |
| arkhe | 4.11M | 0.0001 | 0.1473 | 0.0002 | 0.0003 | 0.0004 | ±0.19% | 2,057,117 |
| es-toolkit/compat | 2.84M | 0.0002 | 0.1479 | 0.0004 | 0.0003 | 0.0005 | ±0.22% | 1,420,935 |
| lodash-es | 2.32M | 0.0003 | 0.1717 | 0.0004 | 0.0004 | 0.0007 | ±0.23% | 1,158,952 |
partition
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 18.48M | 0.0000 | 0.2055 | 0.0001 | 0.0001 | 0.0001 | ±0.27% | 9,239,866 |
| arkhe | 18.41M | 0.0000 | 0.2170 | 0.0001 | 0.0001 | 0.0001 | ±0.39% | 9,206,800 |
| es-toolkit/compat | 18.40M | 0.0000 | 0.1525 | 0.0001 | 0.0001 | 0.0001 | ±0.25% | 9,200,786 |
| lodash-es | 17.55M | 0.0000 | 0.3515 | 0.0001 | 0.0001 | 0.0001 | ±0.36% | 8,775,745 |
partition largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 35.24K | 0.0238 | 0.3447 | 0.0284 | 0.0287 | 0.0330 | ±0.37% | 17,618 |
| es-toolkit | 35.02K | 0.0236 | 0.2195 | 0.0286 | 0.0287 | 0.0410 | ±0.34% | 17,510 |
| es-toolkit/compat | 15.12K | 0.0625 | 0.2900 | 0.0661 | 0.0653 | 0.0820 | ±0.28% | 7,560 |
| lodash-es | 10.31K | 0.0922 | 0.3848 | 0.0970 | 0.0964 | 0.1118 | ±0.26% | 5,156 |
reverse
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 1.25M | 0.0006 | 0.1161 | 0.0008 | 0.0008 | 0.0013 | ±0.20% | 623,095 |
| es-toolkit/compat | 1.23M | 0.0006 | 0.0637 | 0.0008 | 0.0008 | 0.0013 | ±0.15% | 615,309 |
| arkhe | 971.91K | 0.0008 | 0.1234 | 0.0010 | 0.0010 | 0.0020 | ±0.21% | 485,953 |
sample
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 24.26M | 0.0000 | 0.0425 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 12,130,425 |
| lodash-es | 22.92M | 0.0000 | 0.0334 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 11,461,530 |
| es-toolkit | 22.23M | 0.0000 | 2.2682 | 0.0000 | 0.0000 | 0.0001 | ±0.89% | 11,114,661 |
| es-toolkit/compat | 22.19M | 0.0000 | 0.0376 | 0.0000 | 0.0000 | 0.0001 | ±0.09% | 11,094,535 |
sample largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 23.34M | 0.0000 | 0.0379 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 11,671,199 |
| es-toolkit/compat | 21.43M | 0.0000 | 0.0286 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 10,716,008 |
| arkhe | 21.16M | 0.0000 | 0.9787 | 0.0000 | 0.0000 | 0.0001 | ±0.41% | 10,580,725 |
| lodash-es | 20.56M | 0.0000 | 12.8988 | 0.0000 | 0.0000 | 0.0001 | ±5.06% | 10,281,918 |
sampleSize
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.01M | 0.0000 | 0.1174 | 0.0001 | 0.0001 | 0.0002 | ±0.17% | 6,007,402 |
| lodash-es | 10.94M | 0.0000 | 3.0010 | 0.0001 | 0.0001 | 0.0002 | ±1.18% | 5,469,317 |
| es-toolkit | 8.02M | 0.0000 | 0.1092 | 0.0001 | 0.0001 | 0.0002 | ±0.15% | 4,009,255 |
| es-toolkit/compat | 7.28M | 0.0000 | 0.2234 | 0.0001 | 0.0002 | 0.0003 | ±0.19% | 3,640,927 |
sampleSize largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 363.24K | 0.0023 | 0.1179 | 0.0028 | 0.0027 | 0.0032 | ±0.21% | 181,621 |
| es-toolkit | 215.17K | 0.0038 | 0.2340 | 0.0046 | 0.0047 | 0.0059 | ±0.24% | 107,586 |
| es-toolkit/compat | 166.19K | 0.0053 | 0.1144 | 0.0060 | 0.0060 | 0.0075 | ±0.18% | 83,094 |
| lodash-es | 99.48K | 0.0091 | 0.1473 | 0.0101 | 0.0098 | 0.0148 | ±0.16% | 49,739 |
shuffle
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 11.44M | 0.0000 | 3.4105 | 0.0001 | 0.0001 | 0.0002 | ±1.35% | 5,718,909 |
| es-toolkit | 11.36M | 0.0000 | 2.2505 | 0.0001 | 0.0001 | 0.0002 | ±0.90% | 5,679,772 |
| arkhe | 11.03M | 0.0000 | 0.3259 | 0.0001 | 0.0001 | 0.0002 | ±0.21% | 5,515,982 |
| lodash-es | 8.96M | 0.0000 | 0.1284 | 0.0001 | 0.0001 | 0.0002 | ±0.20% | 4,479,846 |
shuffle largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 15.54K | 0.0611 | 0.1611 | 0.0643 | 0.0639 | 0.0808 | ±0.15% | 7,772 |
| arkhe | 15.50K | 0.0612 | 0.1676 | 0.0645 | 0.0639 | 0.0811 | ±0.15% | 7,750 |
| es-toolkit/compat | 15.48K | 0.0613 | 0.2862 | 0.0646 | 0.0641 | 0.0763 | ±0.19% | 7,738 |
| lodash-es | 11.91K | 0.0796 | 0.1775 | 0.0840 | 0.0833 | 0.1009 | ±0.15% | 5,956 |
take
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 27.67M | 0.0000 | 0.0275 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 13,834,661 |
| arkhe | 19.82M | 0.0000 | 0.0648 | 0.0001 | 0.0000 | 0.0001 | ±0.08% | 9,909,945 |
| es-toolkit | 19.72M | 0.0000 | 0.0583 | 0.0001 | 0.0000 | 0.0001 | ±0.10% | 9,860,938 |
| es-toolkit/compat | 18.40M | 0.0000 | 0.0390 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 9,200,937 |
take largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 16.58M | 0.0000 | 0.2341 | 0.0001 | 0.0001 | 0.0001 | ±0.51% | 8,289,872 |
| es-toolkit | 16.37M | 0.0000 | 0.2025 | 0.0001 | 0.0001 | 0.0001 | ±0.41% | 8,185,126 |
| arkhe | 15.54M | 0.0000 | 0.1426 | 0.0001 | 0.0001 | 0.0001 | ±0.32% | 7,772,117 |
| lodash-es | 8.06M | 0.0000 | 10.7319 | 0.0001 | 0.0001 | 0.0002 | ±4.21% | 4,030,268 |
takeRight
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 28.19M | 0.0000 | 0.0355 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 14,095,243 |
| arkhe | 20.27M | 0.0000 | 3.1605 | 0.0000 | 0.0000 | 0.0001 | ±1.46% | 10,134,339 |
| es-toolkit | 20.21M | 0.0000 | 0.0990 | 0.0000 | 0.0000 | 0.0001 | ±0.12% | 10,104,884 |
| es-toolkit/compat | 20.06M | 0.0000 | 5.5318 | 0.0000 | 0.0000 | 0.0001 | ±2.17% | 10,030,388 |
takeRight largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 16.79M | 0.0000 | 9.9103 | 0.0001 | 0.0001 | 0.0001 | ±3.90% | 8,394,353 |
| es-toolkit | 16.69M | 0.0000 | 0.2613 | 0.0001 | 0.0001 | 0.0001 | ±0.35% | 8,343,576 |
| es-toolkit/compat | 16.55M | 0.0000 | 0.1875 | 0.0001 | 0.0001 | 0.0001 | ±0.39% | 8,276,249 |
| lodash-es | 7.63M | 0.0000 | 0.2092 | 0.0001 | 0.0001 | 0.0002 | ±0.35% | 3,813,675 |
takeRightWhile
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 24.16M | 0.0000 | 0.5624 | 0.0000 | 0.0000 | 0.0001 | ±0.42% | 12,082,036 |
| arkhe | 18.65M | 0.0000 | 0.0285 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 9,325,411 |
| es-toolkit | 18.42M | 0.0000 | 0.0749 | 0.0001 | 0.0001 | 0.0001 | ±0.10% | 9,209,192 |
| es-toolkit/compat | 10.01M | 0.0000 | 0.1940 | 0.0001 | 0.0001 | 0.0001 | ±0.22% | 5,004,080 |
takeRightWhile largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 22.88M | 0.0000 | 0.1946 | 0.0000 | 0.0000 | 0.0001 | ±0.11% | 11,441,605 |
| es-toolkit | 20.88M | 0.0000 | 0.0552 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 10,442,021 |
| arkhe | 20.51M | 0.0000 | 0.0439 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 10,253,176 |
| es-toolkit/compat | 15.71M | 0.0000 | 0.2390 | 0.0001 | 0.0001 | 0.0001 | ±0.25% | 7,857,491 |
takeWhile
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 29.45M | 0.0000 | 0.0225 | 0.0000 | 0.0000 | 0.0000 | ±0.07% | 14,725,354 |
| lodash-es | 28.29M | 0.0000 | 0.0223 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 14,144,739 |
| arkhe | 28.04M | 0.0000 | 0.0525 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 14,020,749 |
| es-toolkit/compat | 15.89M | 0.0000 | 2.5277 | 0.0001 | 0.0001 | 0.0001 | ±1.01% | 7,944,285 |
takeWhile largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 4.52M | 0.0001 | 0.2165 | 0.0002 | 0.0002 | 0.0005 | ±0.39% | 2,260,061 |
| arkhe | 4.44M | 0.0001 | 0.2486 | 0.0002 | 0.0002 | 0.0005 | ±0.40% | 2,218,001 |
| lodash-es | 1.92M | 0.0004 | 0.2258 | 0.0005 | 0.0005 | 0.0006 | ±0.14% | 959,975 |
| es-toolkit/compat | 987.23K | 0.0009 | 0.2283 | 0.0010 | 0.0010 | 0.0012 | ±0.22% | 493,615 |
toArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 14.49M | 0.0000 | 0.1975 | 0.0001 | 0.0001 | 0.0001 | ±0.23% | 7,243,995 |
| lodash-es | 3.97M | 0.0001 | 0.1280 | 0.0003 | 0.0003 | 0.0003 | ±0.20% | 1,984,715 |
| es-toolkit/compat | 3.31M | 0.0002 | 0.1441 | 0.0003 | 0.0003 | 0.0004 | ±0.16% | 1,656,526 |
union
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 6.79M | 0.0000 | 2.5765 | 0.0001 | 0.0002 | 0.0002 | ±1.02% | 3,394,025 |
| lodash-es | 5.99M | 0.0001 | 0.1801 | 0.0002 | 0.0002 | 0.0002 | ±0.18% | 2,993,813 |
| es-toolkit | 5.79M | 0.0000 | 1.0571 | 0.0002 | 0.0002 | 0.0002 | ±0.45% | 2,894,828 |
| es-toolkit/compat | 4.89M | 0.0001 | 0.1823 | 0.0002 | 0.0002 | 0.0003 | ±0.19% | 2,445,442 |
union largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 1.67K | 0.5423 | 3.1596 | 0.5973 | 0.5832 | 2.3687 | ±2.33% | 838 |
| arkhe | 1.58K | 0.5874 | 2.4272 | 0.6325 | 0.6277 | 0.6851 | ±1.64% | 791 |
| es-toolkit/compat | 1.47K | 0.6230 | 2.5870 | 0.6794 | 0.6684 | 1.8060 | ±1.73% | 736 |
| lodash-es | 1.39K | 0.6679 | 2.4840 | 0.7176 | 0.7060 | 2.1536 | ±1.76% | 697 |
unionBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 11.36M | 0.0000 | 0.1621 | 0.0001 | 0.0001 | 0.0001 | ±0.30% | 5,680,472 |
| es-toolkit | 6.28M | 0.0000 | 0.2316 | 0.0002 | 0.0002 | 0.0002 | ±0.21% | 3,140,297 |
| lodash-es | 5.29M | 0.0001 | 0.1466 | 0.0002 | 0.0002 | 0.0003 | ±0.22% | 2,644,603 |
| es-toolkit/compat | 5.15M | 0.0001 | 0.1795 | 0.0002 | 0.0002 | 0.0003 | ±0.13% | 2,576,404 |
unionBy largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 1.38K | 0.6722 | 1.9497 | 0.7252 | 0.7275 | 1.1393 | ±0.97% | 690 |
| arkhe | 1.37K | 0.6799 | 3.1655 | 0.7313 | 0.7243 | 0.8085 | ±1.72% | 684 |
| es-toolkit | 1.28K | 0.7018 | 3.1464 | 0.7796 | 0.7842 | 2.1074 | ±1.88% | 642 |
| es-toolkit/compat | 716 | 1.2692 | 2.0309 | 1.3970 | 1.3890 | 1.9306 | ±0.87% | 359 |
unionWith
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 16.41M | 0.0000 | 0.1664 | 0.0001 | 0.0001 | 0.0001 | ±0.22% | 8,203,420 |
| es-toolkit/compat | 12.99M | 0.0000 | 0.1781 | 0.0001 | 0.0001 | 0.0001 | ±0.21% | 6,495,983 |
| es-toolkit | 7.76M | 0.0000 | 0.1026 | 0.0001 | 0.0001 | 0.0002 | ±0.12% | 3,880,279 |
| lodash-es | 5.69M | 0.0000 | 10.9708 | 0.0002 | 0.0002 | 0.0003 | ±4.30% | 2,845,857 |
unionWith largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 140 | 7.0244 | 7.3318 | 7.1244 | 7.1622 | 7.3318 | ±0.23% | 71 |
| es-toolkit | 132 | 7.2915 | 7.9205 | 7.5794 | 7.6664 | 7.9205 | ±0.40% | 66 |
| es-toolkit/compat | 130 | 7.3953 | 11.0689 | 7.6921 | 7.7157 | 11.0689 | ±1.45% | 66 |
| arkhe | 94.88 | 7.7197 | 12.3925 | 10.5393 | 12.0651 | 12.3925 | ±5.49% | 48 |
uniq
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 18.06M | 0.0000 | 0.1275 | 0.0001 | 0.0001 | 0.0001 | ±0.18% | 9,032,360 |
| lodash-es | 17.04M | 0.0000 | 0.1483 | 0.0001 | 0.0001 | 0.0001 | ±0.21% | 8,519,415 |
| es-toolkit | 9.77M | 0.0000 | 0.2123 | 0.0001 | 0.0001 | 0.0001 | ±0.20% | 4,886,993 |
| es-toolkit/compat | 9.02M | 0.0000 | 3.5192 | 0.0001 | 0.0001 | 0.0001 | ±1.40% | 4,511,558 |
uniq largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 15.49K | 0.0598 | 0.4290 | 0.0645 | 0.0648 | 0.0796 | ±0.29% | 7,747 |
| es-toolkit/compat | 10.11K | 0.0925 | 0.2976 | 0.0989 | 0.0994 | 0.1150 | ±0.21% | 5,054 |
| es-toolkit | 10.08K | 0.0935 | 0.3936 | 0.0992 | 0.0993 | 0.1223 | ±0.23% | 5,040 |
| lodash-es | 9.93K | 0.0940 | 0.4298 | 0.1007 | 0.1005 | 0.1270 | ±0.23% | 4,967 |
uniqBy largeArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 11.41K | 0.0825 | 0.4020 | 0.0876 | 0.0879 | 0.1055 | ±0.26% | 5,707 |
| arkhe | 9.07K | 0.1037 | 0.4122 | 0.1103 | 0.1100 | 0.1398 | ±0.32% | 4,534 |
| es-toolkit | 8.07K | 0.1139 | 0.4811 | 0.1238 | 0.1256 | 0.1456 | ±0.33% | 4,038 |
| es-toolkit/compat | 2.09K | 0.4259 | 0.7735 | 0.4791 | 0.4860 | 0.6657 | ±0.45% | 1,044 |
uniqBy smallArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 15.83M | 0.0000 | 0.1691 | 0.0001 | 0.0001 | 0.0001 | ±0.25% | 7,914,741 |
| es-toolkit | 12.40M | 0.0000 | 2.4458 | 0.0001 | 0.0001 | 0.0001 | ±0.98% | 6,201,731 |
| arkhe | 12.23M | 0.0000 | 0.2225 | 0.0001 | 0.0001 | 0.0001 | ±0.27% | 6,115,149 |
| es-toolkit/compat | 6.05M | 0.0000 | 2.9637 | 0.0002 | 0.0002 | 0.0002 | ±1.18% | 3,025,438 |
uniqWith largeArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 3.43K | 0.2766 | 0.4719 | 0.2912 | 0.2914 | 0.3798 | ±0.25% | 1,717 |
| es-toolkit/compat | 3.20K | 0.2963 | 0.5269 | 0.3125 | 0.3119 | 0.4129 | ±0.26% | 1,601 |
| es-toolkit | 3.19K | 0.2964 | 0.5077 | 0.3136 | 0.3135 | 0.4320 | ±0.29% | 1,595 |
| arkhe | 3.11K | 0.3049 | 0.4891 | 0.3221 | 0.3216 | 0.4547 | ±0.29% | 1,553 |
uniqWith smallArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 18.53M | 0.0000 | 0.2167 | 0.0001 | 0.0001 | 0.0001 | ±0.30% | 9,263,844 |
| arkhe | 17.43M | 0.0000 | 0.1595 | 0.0001 | 0.0001 | 0.0001 | ±0.32% | 8,714,524 |
| lodash-es | 14.60M | 0.0000 | 0.2234 | 0.0001 | 0.0001 | 0.0001 | ±0.39% | 7,299,520 |
| es-toolkit/compat | 10.67M | 0.0000 | 0.1243 | 0.0001 | 0.0001 | 0.0001 | ±0.12% | 5,335,436 |
unzip largeArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 15.49K | 0.0617 | 0.1895 | 0.0646 | 0.0639 | 0.0796 | ±0.19% | 7,744 |
| es-toolkit | 13.11K | 0.0709 | 9.6561 | 0.0763 | 0.0739 | 0.0943 | ±3.76% | 6,553 |
| es-toolkit/compat | 5.58K | 0.1706 | 0.3111 | 0.1793 | 0.1795 | 0.2069 | ±0.15% | 2,789 |
| lodash-es | 2.06K | 0.4639 | 0.8361 | 0.4864 | 0.4955 | 0.5778 | ±0.39% | 1,028 |
unzip smallArrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 22.13M | 0.0000 | 3.1461 | 0.0000 | 0.0000 | 0.0001 | ±1.25% | 11,065,474 |
| arkhe | 19.32M | 0.0000 | 0.1884 | 0.0001 | 0.0000 | 0.0001 | ±0.27% | 9,659,019 |
| es-toolkit/compat | 15.17M | 0.0000 | 6.1727 | 0.0001 | 0.0001 | 0.0001 | ±2.43% | 7,585,016 |
| lodash-es | 6.63M | 0.0000 | 0.1772 | 0.0002 | 0.0002 | 0.0002 | ±0.20% | 3,312,818 |
xor
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 3.75M | 0.0002 | 12.7599 | 0.0003 | 0.0003 | 0.0004 | ±5.01% | 1,877,394 |
| arkhe | 3.24M | 0.0002 | 0.1665 | 0.0003 | 0.0003 | 0.0004 | ±0.23% | 1,620,551 |
| es-toolkit | 3.10M | 0.0002 | 1.9837 | 0.0003 | 0.0003 | 0.0005 | ±0.79% | 1,549,942 |
xor largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 957 | 0.9855 | 3.1228 | 1.0446 | 1.0283 | 1.9953 | ±1.49% | 479 |
| arkhe | 606 | 1.5338 | 4.3334 | 1.6499 | 1.6185 | 3.3456 | ±1.97% | 304 |
| es-toolkit | 585 | 1.5933 | 4.3011 | 1.7081 | 1.6843 | 3.6028 | ±1.77% | 293 |
zip
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 22.98M | 0.0000 | 0.1914 | 0.0000 | 0.0000 | 0.0001 | ±0.30% | 11,488,103 |
| es-toolkit | 22.43M | 0.0000 | 3.1150 | 0.0000 | 0.0000 | 0.0001 | ±1.62% | 11,216,199 |
| es-toolkit/compat | 12.41M | 0.0000 | 5.5932 | 0.0001 | 0.0001 | 0.0001 | ±2.21% | 6,207,327 |
| lodash-es | 5.60M | 0.0001 | 0.0982 | 0.0002 | 0.0002 | 0.0002 | ±0.10% | 2,801,897 |
zip largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 20.43K | 0.0444 | 0.2780 | 0.0489 | 0.0472 | 0.1228 | ±0.49% | 10,215 |
| es-toolkit/compat | 19.72K | 0.0471 | 0.3375 | 0.0507 | 0.0495 | 0.1220 | ±0.37% | 9,861 |
| es-toolkit | 19.72K | 0.0471 | 0.3077 | 0.0507 | 0.0494 | 0.1208 | ±0.37% | 9,859 |
| lodash-es | 14.24K | 0.0649 | 0.3418 | 0.0702 | 0.0689 | 0.1451 | ±0.45% | 7,118 |
zipWith
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 7.59M | 0.0000 | 0.1427 | 0.0001 | 0.0001 | 0.0002 | ±0.23% | 3,796,869 |
| es-toolkit/compat | 7.32M | 0.0000 | 0.1856 | 0.0001 | 0.0001 | 0.0002 | ±0.24% | 3,660,417 |
| es-toolkit | 4.48M | 0.0001 | 0.1367 | 0.0002 | 0.0002 | 0.0003 | ±0.23% | 2,238,676 |
| lodash-es | 3.75M | 0.0002 | 0.1434 | 0.0003 | 0.0003 | 0.0003 | ±0.21% | 1,876,643 |
zipWith largeArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 5.87K | 0.1592 | 0.5600 | 0.1703 | 0.1683 | 0.4225 | ±0.66% | 2,936 |
| es-toolkit/compat | 5.47K | 0.1676 | 0.5230 | 0.1827 | 0.1811 | 0.4404 | ±0.66% | 2,738 |
| arkhe | 4.45K | 0.2121 | 0.3467 | 0.2249 | 0.2248 | 0.2847 | ±0.24% | 2,224 |
| es-toolkit | 2.39K | 0.3897 | 4.4199 | 0.4184 | 0.4170 | 0.4971 | ±1.59% | 1,196 |
Function11
after
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 22.25M | 0.0000 | 2.4399 | 0.0000 | 0.0000 | 0.0001 | ±1.24% | 11,123,795 |
| arkhe | 21.43M | 0.0000 | 11.5115 | 0.0000 | 0.0000 | 0.0001 | ±4.53% | 10,716,087 |
| lodash-es | 18.61M | 0.0000 | 0.1673 | 0.0001 | 0.0001 | 0.0001 | ±0.24% | 9,305,030 |
| es-toolkit/compat | 16.87M | 0.0000 | 0.3431 | 0.0001 | 0.0001 | 0.0001 | ±0.35% | 8,434,627 |
before
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 22.53M | 0.0000 | 0.1739 | 0.0000 | 0.0000 | 0.0001 | ±0.53% | 2,252,989 |
| arkhe | 19.51M | 0.0000 | 0.1997 | 0.0001 | 0.0000 | 0.0001 | ±0.64% | 1,951,213 |
| lodash-es | 13.22M | 0.0000 | 0.2244 | 0.0001 | 0.0001 | 0.0001 | ±0.54% | 1,322,224 |
| es-toolkit/compat | 11.65M | 0.0000 | 0.1457 | 0.0001 | 0.0001 | 0.0001 | ±0.46% | 1,165,976 |
curry
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 9.12M | 0.0000 | 2.9215 | 0.0001 | 0.0001 | 0.0002 | ±1.18% | 4,558,560 |
| es-toolkit/compat | 8.31M | 0.0000 | 0.1536 | 0.0001 | 0.0001 | 0.0002 | ±0.09% | 4,153,494 |
| arkhe | 7.24M | 0.0000 | 0.1461 | 0.0001 | 0.0001 | 0.0002 | ±0.23% | 3,621,901 |
| lodash-es | 834.81K | 0.0010 | 0.1512 | 0.0012 | 0.0012 | 0.0018 | ±0.28% | 417,407 |
debounce
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.53M | 0.0002 | 29.7778 | 0.0007 | 0.0003 | 0.0003 | ±27.82% | 785,693 |
| es-toolkit/compat | 847.57K | 0.0002 | 22.5359 | 0.0012 | 0.0003 | 0.0005 | ±35.14% | 425,404 |
| es-toolkit | 743.43K | 0.0002 | 189.4000 | 0.0013 | 0.0003 | 0.0006 | ±77.99% | 371,713 |
| lodash-es | 540.66K | 0.0001 | 565.9300 | 0.0018 | 0.0002 | 0.0005 | ±106.26% | 571,805 |
flip
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 29.37M | 0.0000 | 0.0307 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 14,684,414 |
| es-toolkit/compat | 19.11M | 0.0000 | 0.2429 | 0.0001 | 0.0000 | 0.0001 | ±0.25% | 9,556,040 |
| lodash-es | 2.76M | 0.0003 | 0.1897 | 0.0004 | 0.0004 | 0.0005 | ±0.20% | 1,380,156 |
flowRight
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 15.29M | 0.0000 | 0.9634 | 0.0001 | 0.0001 | 0.0001 | ±0.65% | 7,643,351 |
| es-toolkit | 13.39M | 0.0000 | 0.8330 | 0.0001 | 0.0001 | 0.0001 | ±0.57% | 6,693,172 |
| es-toolkit/compat | 10.13M | 0.0000 | 1.1743 | 0.0001 | 0.0001 | 0.0002 | ±0.68% | 5,065,057 |
| lodash-es | 5.45M | 0.0001 | 1.0954 | 0.0002 | 0.0002 | 0.0004 | ±0.59% | 2,723,069 |
memoize
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 5.32M | 0.0001 | 0.1508 | 0.0002 | 0.0002 | 0.0003 | ±0.15% | 2,660,244 |
| arkhe | 5.21M | 0.0001 | 4.6983 | 0.0002 | 0.0002 | 0.0003 | ±1.85% | 2,606,917 |
| es-toolkit | 5.06M | 0.0001 | 1.9979 | 0.0002 | 0.0002 | 0.0003 | ±0.80% | 2,529,992 |
| lodash-es | 3.97M | 0.0002 | 0.1280 | 0.0003 | 0.0003 | 0.0003 | ±0.16% | 1,985,750 |
negate
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 29.10M | 0.0000 | 0.1029 | 0.0000 | 0.0000 | 0.0000 | ±0.09% | 14,550,157 |
| es-toolkit | 28.70M | 0.0000 | 0.1326 | 0.0000 | 0.0000 | 0.0000 | ±0.12% | 14,348,764 |
| es-toolkit/compat | 24.85M | 0.0000 | 0.1982 | 0.0000 | 0.0000 | 0.0001 | ±0.26% | 12,426,045 |
| lodash-es | 24.80M | 0.0000 | 0.2089 | 0.0000 | 0.0000 | 0.0001 | ±0.33% | 12,397,799 |
noop
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 30.19M | 0.0000 | 0.0399 | 0.0000 | 0.0000 | 0.0000 | ±0.10% | 15,094,001 |
| arkhe | 29.54M | 0.0000 | 0.0312 | 0.0000 | 0.0000 | 0.0000 | ±0.07% | 14,769,331 |
| lodash-es | 28.80M | 0.0000 | 0.0412 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 14,401,616 |
once
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 30.30M | 0.0000 | 0.1849 | 0.0000 | 0.0000 | 0.0000 | ±0.12% | 15,152,080 |
| es-toolkit | 29.43M | 0.0000 | 0.1465 | 0.0000 | 0.0000 | 0.0000 | ±0.12% | 14,715,281 |
| es-toolkit/compat | 24.29M | 0.0000 | 0.2730 | 0.0000 | 0.0000 | 0.0001 | ±0.25% | 12,146,683 |
| lodash-es | 23.18M | 0.0000 | 0.2560 | 0.0000 | 0.0000 | 0.0001 | ±0.31% | 11,590,053 |
throttle
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.58M | 0.0001 | 47.3445 | 0.0006 | 0.0004 | 0.0012 | ±30.21% | 791,908 |
| lodash-es | 913.72K | 0.0001 | 30.6372 | 0.0011 | 0.0003 | 0.0003 | ±37.10% | 477,855 |
| es-toolkit/compat | 820.19K | 0.0004 | 23.3057 | 0.0012 | 0.0005 | 0.0006 | ±32.45% | 410,096 |
| es-toolkit | 501.07K | 0.0003 | 143.7200 | 0.0020 | 0.0005 | 0.0023 | ±54.30% | 291,796 |
Is22
isArray
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 28.11M | 0.0000 | 0.0383 | 0.0000 | 0.0000 | 0.0000 | ±0.07% | 14,055,419 |
| es-toolkit/compat | 27.93M | 0.0000 | 0.0313 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 13,965,319 |
| arkhe | 26.03M | 0.0000 | 0.0491 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 13,013,903 |
isArrayBuffer
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 6.53M | 0.0000 | 0.1837 | 0.0002 | 0.0002 | 0.0003 | ±0.24% | 3,263,177 |
| es-toolkit/compat | 6.44M | 0.0000 | 0.1685 | 0.0002 | 0.0002 | 0.0003 | ±0.20% | 3,220,427 |
| es-toolkit | 6.07M | 0.0000 | 5.7757 | 0.0002 | 0.0002 | 0.0004 | ±2.27% | 3,034,675 |
| lodash-es | 128.57K | 0.0072 | 0.2026 | 0.0078 | 0.0077 | 0.0118 | ±0.15% | 64,285 |
isBoolean
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 33.07M | 0.0000 | 0.0482 | 0.0000 | 0.0000 | 0.0000 | ±0.12% | 16,536,376 |
| arkhe | 32.54M | 0.0000 | 0.0494 | 0.0000 | 0.0000 | 0.0000 | ±0.10% | 16,270,439 |
| es-toolkit/compat | 31.22M | 0.0000 | 1.7682 | 0.0000 | 0.0000 | 0.0000 | ±0.71% | 15,611,713 |
| lodash-es | 20.93M | 0.0000 | 0.3195 | 0.0000 | 0.0000 | 0.0001 | ±0.16% | 10,462,501 |
isDate
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 12.68M | 0.0000 | 0.0717 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 6,340,093 |
| arkhe | 12.47M | 0.0000 | 0.0376 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 6,236,952 |
| es-toolkit/compat | 11.98M | 0.0000 | 0.0357 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 5,990,304 |
| lodash-es | 6.84M | 0.0000 | 0.0456 | 0.0001 | 0.0002 | 0.0002 | ±0.08% | 3,421,278 |
isEqual arrays
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 5.27M | 0.0001 | 0.6687 | 0.0002 | 0.0002 | 0.0004 | ±0.62% | 2,635,197 |
| lodash-es | 3.91M | 0.0001 | 2.2755 | 0.0003 | 0.0003 | 0.0006 | ±1.60% | 1,952,920 |
| es-toolkit | 2.68M | 0.0002 | 1.3430 | 0.0004 | 0.0004 | 0.0005 | ±0.71% | 1,340,870 |
| es-toolkit/compat | 2.34M | 0.0002 | 12.1924 | 0.0004 | 0.0004 | 0.0009 | ±4.94% | 1,171,690 |
isEqual dates
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.66M | 0.0005 | 0.9456 | 0.0006 | 0.0006 | 0.0008 | ±0.49% | 831,790 |
| es-toolkit | 1.50M | 0.0005 | 0.0534 | 0.0007 | 0.0007 | 0.0009 | ±0.13% | 750,218 |
| es-toolkit/compat | 1.49M | 0.0005 | 0.3640 | 0.0007 | 0.0007 | 0.0009 | ±0.24% | 743,202 |
| lodash-es | 1.10M | 0.0007 | 0.4010 | 0.0009 | 0.0009 | 0.0013 | ±0.33% | 547,629 |
isEqual objects
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 2.00M | 0.0003 | 0.2995 | 0.0005 | 0.0005 | 0.0007 | ±0.38% | 1,002,121 |
| es-toolkit | 683.45K | 0.0012 | 0.2592 | 0.0015 | 0.0015 | 0.0020 | ±0.33% | 341,725 |
| es-toolkit/compat | 676.28K | 0.0012 | 0.4194 | 0.0015 | 0.0015 | 0.0021 | ±0.36% | 338,140 |
| lodash-es | 636.93K | 0.0013 | 0.3806 | 0.0016 | 0.0015 | 0.0023 | ±0.35% | 318,558 |
isEqual primitives
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 25.16M | 0.0000 | 0.0838 | 0.0000 | 0.0000 | 0.0001 | ±0.12% | 12,578,944 |
| arkhe | 24.83M | 0.0000 | 0.9310 | 0.0000 | 0.0000 | 0.0001 | ±0.43% | 12,414,660 |
| es-toolkit/compat | 12.71M | 0.0000 | 0.0513 | 0.0001 | 0.0001 | 0.0001 | ±0.10% | 6,357,291 |
| es-toolkit | 12.69M | 0.0000 | 0.1376 | 0.0001 | 0.0001 | 0.0001 | ±0.14% | 6,342,698 |
isEqual RegExps
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 6.66M | 0.0000 | 0.3541 | 0.0002 | 0.0002 | 0.0002 | ±0.27% | 3,330,046 |
| es-toolkit | 6.37M | 0.0000 | 17.3204 | 0.0002 | 0.0002 | 0.0003 | ±6.81% | 3,185,657 |
| arkhe | 5.75M | 0.0000 | 0.3677 | 0.0002 | 0.0002 | 0.0003 | ±0.40% | 2,874,038 |
| lodash-es | 1.09M | 0.0007 | 0.1600 | 0.0009 | 0.0009 | 0.0012 | ±0.20% | 544,551 |
isError
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 477.14K | 0.0018 | 0.0608 | 0.0021 | 0.0022 | 0.0027 | ±0.09% | 238,572 |
| es-toolkit/compat | 468.70K | 0.0018 | 0.1172 | 0.0021 | 0.0022 | 0.0027 | ±0.10% | 234,352 |
| arkhe | 463.86K | 0.0020 | 0.1556 | 0.0022 | 0.0022 | 0.0027 | ±0.11% | 231,933 |
| lodash-es | 415.80K | 0.0022 | 0.1905 | 0.0024 | 0.0024 | 0.0027 | ±0.14% | 207,901 |
isFunction
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 3.87K | 0.2458 | 0.3315 | 0.2585 | 0.2613 | 0.2939 | ±0.15% | 1,935 |
| es-toolkit/compat | 3.87K | 0.2456 | 0.4034 | 0.2587 | 0.2605 | 0.3030 | ±0.18% | 1,933 |
| arkhe | 3.86K | 0.2459 | 0.3423 | 0.2591 | 0.2612 | 0.3041 | ±0.18% | 1,930 |
| lodash-es | 3.73K | 0.2544 | 0.3723 | 0.2677 | 0.2701 | 0.3070 | ±0.17% | 1,868 |
isMap
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.45M | 0.0000 | 0.3695 | 0.0001 | 0.0001 | 0.0001 | ±0.37% | 6,224,690 |
| es-toolkit | 12.31M | 0.0000 | 0.1803 | 0.0001 | 0.0001 | 0.0001 | ±0.26% | 6,153,857 |
| es-toolkit/compat | 11.51M | 0.0000 | 11.2892 | 0.0001 | 0.0001 | 0.0001 | ±4.44% | 5,754,761 |
| lodash-es | 85.68K | 0.0107 | 0.2568 | 0.0117 | 0.0117 | 0.0152 | ±0.14% | 42,841 |
isNil
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 28.49M | 0.0000 | 0.1100 | 0.0000 | 0.0000 | 0.0000 | ±0.11% | 14,246,999 |
| es-toolkit/compat | 28.39M | 0.0000 | 0.0780 | 0.0000 | 0.0000 | 0.0000 | ±0.11% | 14,196,387 |
| lodash-es | 28.37M | 0.0000 | 0.0367 | 0.0000 | 0.0000 | 0.0000 | ±0.10% | 14,183,209 |
| arkhe | 28.28M | 0.0000 | 0.0486 | 0.0000 | 0.0000 | 0.0000 | ±0.10% | 14,142,408 |
isNull
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 27.45M | 0.0000 | 0.0177 | 0.0000 | 0.0000 | 0.0000 | ±0.04% | 13,723,385 |
| lodash-es | 27.12M | 0.0000 | 0.0392 | 0.0000 | 0.0000 | 0.0000 | ±0.09% | 13,558,734 |
| arkhe | 26.47M | 0.0000 | 0.0357 | 0.0000 | 0.0000 | 0.0001 | ±0.09% | 13,234,499 |
| es-toolkit | 25.87M | 0.0000 | 0.0157 | 0.0000 | 0.0000 | 0.0001 | ±0.04% | 12,936,561 |
isNumber
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 29.79M | 0.0000 | 0.0316 | 0.0000 | 0.0000 | 0.0000 | ±0.07% | 14,896,301 |
| es-toolkit/compat | 28.69M | 0.0000 | 2.7303 | 0.0000 | 0.0000 | 0.0000 | ±1.07% | 14,343,938 |
| lodash-es | 12.20M | 0.0000 | 0.0380 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 6,099,313 |
isObject
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 445.24K | 0.0020 | 0.0959 | 0.0022 | 0.0023 | 0.0027 | ±0.10% | 222,621 |
| es-toolkit/compat | 442.57K | 0.0020 | 0.0945 | 0.0023 | 0.0023 | 0.0028 | ±0.11% | 221,286 |
| arkhe | 438.14K | 0.0021 | 0.1338 | 0.0023 | 0.0023 | 0.0027 | ±0.09% | 219,069 |
isPlainObject
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 18.64M | 0.0000 | 0.0382 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 9,319,960 |
| es-toolkit | 13.10M | 0.0000 | 2.0395 | 0.0001 | 0.0001 | 0.0001 | ±0.81% | 6,549,664 |
| es-toolkit/compat | 7.03M | 0.0000 | 0.0298 | 0.0001 | 0.0002 | 0.0002 | ±0.06% | 3,517,343 |
| lodash-es | 3.60M | 0.0002 | 0.2202 | 0.0003 | 0.0003 | 0.0003 | ±0.19% | 1,800,531 |
isRegExp
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 11.16M | 0.0000 | 1.8881 | 0.0001 | 0.0001 | 0.0001 | ±0.74% | 5,581,479 |
| es-toolkit/compat | 10.75M | 0.0000 | 3.1123 | 0.0001 | 0.0001 | 0.0001 | ±1.22% | 5,372,908 |
| arkhe | 10.58M | 0.0000 | 2.1915 | 0.0001 | 0.0001 | 0.0001 | ±0.87% | 5,292,500 |
| lodash-es | 6.73M | 0.0000 | 0.0558 | 0.0001 | 0.0002 | 0.0002 | ±0.10% | 3,363,628 |
isSet
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 16.58M | 0.0000 | 0.1906 | 0.0001 | 0.0001 | 0.0001 | ±0.28% | 8,289,845 |
| es-toolkit | 16.54M | 0.0000 | 0.2228 | 0.0001 | 0.0001 | 0.0001 | ±0.23% | 8,269,924 |
| es-toolkit/compat | 16.02M | 0.0000 | 0.1814 | 0.0001 | 0.0001 | 0.0001 | ±0.31% | 8,008,917 |
| lodash-es | 137.38K | 0.0068 | 0.3095 | 0.0073 | 0.0072 | 0.0092 | ±0.20% | 68,689 |
isString
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 22.07M | 0.0000 | 0.0382 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 11,035,731 |
| arkhe | 21.77M | 0.0000 | 0.0299 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 10,885,359 |
| es-toolkit/compat | 20.90M | 0.0000 | 0.0340 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 10,449,265 |
| lodash-es | 13.98M | 0.0000 | 0.0326 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 6,989,365 |
isSymbol
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 16.05M | 0.0000 | 0.2418 | 0.0001 | 0.0001 | 0.0001 | ±0.14% | 8,025,303 |
| es-toolkit | 15.74M | 0.0000 | 0.2035 | 0.0001 | 0.0001 | 0.0001 | ±0.18% | 7,870,713 |
| es-toolkit/compat | 15.46M | 0.0000 | 0.1936 | 0.0001 | 0.0001 | 0.0001 | ±0.24% | 7,731,478 |
| lodash-es | 12.16M | 0.0000 | 9.0154 | 0.0001 | 0.0001 | 0.0001 | ±3.54% | 6,080,896 |
isUndefined
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 30.35M | 0.0000 | 0.0340 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 15,177,082 |
| arkhe | 30.12M | 0.0000 | 0.0471 | 0.0000 | 0.0000 | 0.0000 | ±0.09% | 15,061,604 |
| lodash-es | 29.29M | 0.0000 | 0.0302 | 0.0000 | 0.0000 | 0.0000 | ±0.07% | 14,644,322 |
| es-toolkit | 28.89M | 0.0000 | 0.0717 | 0.0000 | 0.0000 | 0.0000 | ±0.09% | 14,446,158 |
Number4
clamp
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 26.32M | 0.0000 | 0.0297 | 0.0000 | 0.0000 | 0.0001 | ±0.04% | 13,162,375 |
| es-toolkit/compat | 26.10M | 0.0000 | 0.1655 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 13,049,200 |
| es-toolkit | 25.79M | 0.0000 | 0.0380 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 12,893,311 |
| lodash-es | 25.36M | 0.0000 | 0.0173 | 0.0000 | 0.0000 | 0.0001 | ±0.03% | 12,679,969 |
inRange
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 27.54M | 0.0000 | 0.0342 | 0.0000 | 0.0000 | 0.0000 | ±0.07% | 13,771,805 |
| es-toolkit | 26.92M | 0.0000 | 0.0376 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 13,462,153 |
| arkhe | 25.76M | 0.0000 | 0.0343 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 12,881,702 |
| es-toolkit/compat | 24.19M | 0.0000 | 0.0334 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 12,092,609 |
random
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 25.19M | 0.0000 | 0.1688 | 0.0000 | 0.0000 | 0.0001 | ±0.10% | 12,595,077 |
| es-toolkit | 24.02M | 0.0000 | 0.0622 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 12,010,381 |
| lodash-es | 21.86M | 0.0000 | 0.0296 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 10,932,148 |
| es-toolkit/compat | 20.52M | 0.0000 | 2.9607 | 0.0000 | 0.0000 | 0.0001 | ±1.16% | 10,260,505 |
toNumber
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 11.51M | 0.0000 | 2.3465 | 0.0001 | 0.0001 | 0.0001 | ±0.92% | 5,757,055 |
| es-toolkit/compat | 11.36M | 0.0000 | 1.6320 | 0.0001 | 0.0001 | 0.0001 | ±0.90% | 5,679,278 |
| lodash-es | 1.68M | 0.0005 | 0.1240 | 0.0006 | 0.0006 | 0.0007 | ±0.10% | 837,806 |
Object20
defaults
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 8.32M | 0.0000 | 0.1687 | 0.0001 | 0.0001 | 0.0001 | ±0.17% | 4,160,429 |
| es-toolkit/compat | 7.60M | 0.0000 | 2.9250 | 0.0001 | 0.0001 | 0.0002 | ±1.45% | 3,797,791 |
| lodash-es | 4.43M | 0.0001 | 0.1568 | 0.0002 | 0.0003 | 0.0003 | ±0.18% | 2,215,631 |
defaultsDeep
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 5.55M | 0.0000 | 0.1520 | 0.0002 | 0.0002 | 0.0002 | ±0.20% | 2,774,362 |
| arkhe | 4.72M | 0.0001 | 0.1598 | 0.0002 | 0.0002 | 0.0003 | ±0.22% | 2,361,776 |
| lodash-es | 2.42M | 0.0003 | 0.1483 | 0.0004 | 0.0004 | 0.0006 | ±0.22% | 1,208,371 |
findKey
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 23.44M | 0.0000 | 0.0230 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 11,720,263 |
| es-toolkit | 22.39M | 0.0000 | 3.0513 | 0.0000 | 0.0000 | 0.0001 | ±1.21% | 11,192,575 |
| es-toolkit/compat | 19.59M | 0.0000 | 5.2390 | 0.0001 | 0.0000 | 0.0001 | ±2.06% | 9,795,858 |
| lodash-es | 17.17M | 0.0000 | 0.2842 | 0.0001 | 0.0001 | 0.0001 | ±0.23% | 8,586,665 |
findKey largeObject
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 1.41K | 0.7007 | 0.9180 | 0.7116 | 0.7154 | 0.7625 | ±0.15% | 703 |
| lodash-es | 1.40K | 0.6933 | 0.9289 | 0.7118 | 0.7178 | 0.7733 | ±0.20% | 703 |
| es-toolkit/compat | 1.39K | 0.6996 | 0.9345 | 0.7182 | 0.7252 | 0.7790 | ±0.21% | 697 |
| arkhe | 1.34K | 0.7231 | 1.0385 | 0.7483 | 0.7623 | 0.8301 | ±0.26% | 669 |
get arrayPath
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 20.32M | 0.0000 | 0.0354 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 10,161,915 |
| lodash-es | 19.52M | 0.0000 | 0.3737 | 0.0001 | 0.0000 | 0.0001 | ±0.29% | 9,760,682 |
| es-toolkit/compat | 18.42M | 0.0000 | 0.5267 | 0.0001 | 0.0001 | 0.0001 | ±0.44% | 9,209,916 |
get nested
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 11.49M | 0.0000 | 0.0345 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 5,742,873 |
| es-toolkit/compat | 10.78M | 0.0000 | 0.2622 | 0.0001 | 0.0001 | 0.0001 | ±0.16% | 5,390,917 |
| lodash-es | 10.09M | 0.0000 | 0.0311 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 5,046,549 |
get simple
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 27.23M | 0.0000 | 0.0310 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 13,612,650 |
| es-toolkit/compat | 26.50M | 0.0000 | 0.0356 | 0.0000 | 0.0000 | 0.0001 | ±0.09% | 13,252,303 |
| lodash-es | 18.92M | 0.0000 | 0.0462 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 9,462,147 |
has
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 25.05M | 0.0000 | 0.0914 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 12,526,832 |
| lodash-es | 16.79M | 0.0000 | 0.0310 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 8,396,672 |
| es-toolkit/compat | 15.52M | 0.0000 | 0.1188 | 0.0001 | 0.0001 | 0.0001 | ±0.11% | 7,761,306 |
has nested
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 25.82M | 0.0000 | 0.0378 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 12,909,538 |
| es-toolkit/compat | 9.13M | 0.0000 | 4.8356 | 0.0001 | 0.0001 | 0.0001 | ±1.90% | 4,564,279 |
| lodash-es | 7.57M | 0.0000 | 0.0321 | 0.0001 | 0.0001 | 0.0002 | ±0.09% | 3,784,874 |
invert
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 7.84M | 0.0000 | 0.1840 | 0.0001 | 0.0001 | 0.0002 | ±0.16% | 3,922,292 |
| arkhe | 7.72M | 0.0000 | 0.1438 | 0.0001 | 0.0001 | 0.0002 | ±0.17% | 3,858,765 |
| lodash-es | 7.19M | 0.0000 | 2.9970 | 0.0001 | 0.0002 | 0.0002 | ±1.18% | 3,595,952 |
mapKeys
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 5.23M | 0.0001 | 0.2335 | 0.0002 | 0.0002 | 0.0003 | ±0.21% | 2,617,422 |
| lodash-es | 5.17M | 0.0001 | 0.0301 | 0.0002 | 0.0002 | 0.0003 | ±0.07% | 2,586,681 |
| es-toolkit | 5.15M | 0.0001 | 1.3043 | 0.0002 | 0.0002 | 0.0003 | ±0.53% | 2,576,789 |
| es-toolkit/compat | 4.87M | 0.0001 | 0.1904 | 0.0002 | 0.0002 | 0.0003 | ±0.21% | 2,432,610 |
mapValues
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 10.38M | 0.0000 | 0.1797 | 0.0001 | 0.0001 | 0.0001 | ±0.11% | 5,189,673 |
| lodash-es | 8.33M | 0.0000 | 0.1614 | 0.0001 | 0.0001 | 0.0002 | ±0.23% | 4,165,223 |
| es-toolkit | 8.17M | 0.0000 | 0.2024 | 0.0001 | 0.0001 | 0.0002 | ±0.22% | 4,084,146 |
| es-toolkit/compat | 6.37M | 0.0000 | 3.1958 | 0.0002 | 0.0002 | 0.0002 | ±1.28% | 3,184,016 |
mergeWith
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 4.36M | 0.0001 | 0.9780 | 0.0002 | 0.0002 | 0.0003 | ±0.39% | 2,181,440 |
| arkhe | 4.26M | 0.0001 | 0.1485 | 0.0002 | 0.0003 | 0.0003 | ±0.15% | 2,132,108 |
| lodash-es | 3.11M | 0.0002 | 0.1658 | 0.0003 | 0.0003 | 0.0004 | ±0.17% | 1,556,775 |
| es-toolkit/compat | 1.12M | 0.0007 | 0.1432 | 0.0009 | 0.0009 | 0.0011 | ±0.19% | 559,819 |
omit
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 5.89M | 0.0000 | 0.1991 | 0.0002 | 0.0002 | 0.0002 | ±0.15% | 2,943,590 |
| arkhe | 5.82M | 0.0001 | 0.1755 | 0.0002 | 0.0002 | 0.0002 | ±0.16% | 2,907,664 |
| es-toolkit/compat | 2.15M | 0.0003 | 0.2700 | 0.0005 | 0.0005 | 0.0006 | ±0.21% | 1,074,519 |
| lodash-es | 2.02M | 0.0004 | 2.7710 | 0.0005 | 0.0005 | 0.0007 | ±1.10% | 1,011,500 |
omit complex
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 5.40M | 0.0001 | 0.1706 | 0.0002 | 0.0002 | 0.0002 | ±0.21% | 2,701,660 |
| es-toolkit | 5.32M | 0.0001 | 0.4055 | 0.0002 | 0.0002 | 0.0003 | ±0.23% | 2,662,278 |
| es-toolkit/compat | 628.61K | 0.0014 | 0.2327 | 0.0016 | 0.0016 | 0.0020 | ±0.19% | 314,303 |
| lodash-es | 366.71K | 0.0025 | 0.2952 | 0.0027 | 0.0027 | 0.0034 | ±0.22% | 183,356 |
omitBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.86M | 0.0000 | 0.2151 | 0.0001 | 0.0001 | 0.0001 | ±0.12% | 6,428,555 |
| es-toolkit | 9.54M | 0.0000 | 0.0740 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 4,770,274 |
| es-toolkit/compat | 3.84M | 0.0001 | 0.2088 | 0.0003 | 0.0003 | 0.0003 | ±0.20% | 1,920,248 |
| lodash-es | 2.47M | 0.0003 | 0.0590 | 0.0004 | 0.0004 | 0.0005 | ±0.09% | 1,237,111 |
pick
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.76M | 0.0000 | 0.0341 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 6,381,594 |
| es-toolkit | 11.76M | 0.0000 | 2.8141 | 0.0001 | 0.0001 | 0.0001 | ±1.11% | 5,882,197 |
| es-toolkit/compat | 10.94M | 0.0000 | 7.1236 | 0.0001 | 0.0001 | 0.0001 | ±2.92% | 5,469,651 |
| lodash-es | 3.22M | 0.0002 | 0.1605 | 0.0003 | 0.0003 | 0.0004 | ±0.11% | 1,607,554 |
pickBy
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.95M | 0.0000 | 0.2155 | 0.0001 | 0.0001 | 0.0001 | ±0.24% | 6,474,049 |
| es-toolkit | 12.50M | 0.0000 | 0.2417 | 0.0001 | 0.0001 | 0.0001 | ±0.24% | 6,248,062 |
| es-toolkit/compat | 4.24M | 0.0001 | 0.1501 | 0.0002 | 0.0003 | 0.0003 | ±0.17% | 2,119,687 |
| lodash-es | 3.24M | 0.0002 | 0.1358 | 0.0003 | 0.0003 | 0.0004 | ±0.18% | 1,622,266 |
set array
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 878.34K | 0.0010 | 0.2059 | 0.0011 | 0.0011 | 0.0014 | ±0.17% | 439,172 |
| es-toolkit/compat | 872.07K | 0.0010 | 2.0516 | 0.0011 | 0.0011 | 0.0017 | ±0.83% | 436,034 |
| arkhe | 768.16K | 0.0011 | 0.1406 | 0.0013 | 0.0013 | 0.0016 | ±0.17% | 384,083 |
set dot
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 625.63K | 0.0015 | 0.0862 | 0.0016 | 0.0016 | 0.0019 | ±0.11% | 312,813 |
| lodash-es | 534.21K | 0.0017 | 0.1021 | 0.0019 | 0.0018 | 0.0024 | ±0.13% | 267,106 |
| es-toolkit/compat | 449.87K | 0.0018 | 1.0807 | 0.0022 | 0.0023 | 0.0043 | ±0.60% | 224,936 |
String22
camelCase
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 10.64M | 0.0000 | 0.1858 | 0.0001 | 0.0001 | 0.0001 | ±0.28% | 5,322,024 |
| es-toolkit | 5.33M | 0.0001 | 2.0489 | 0.0002 | 0.0002 | 0.0003 | ±0.82% | 2,667,458 |
| lodash-es | 3.44M | 0.0002 | 0.1523 | 0.0003 | 0.0003 | 0.0003 | ±0.18% | 1,721,140 |
| es-toolkit/compat | 2.55M | 0.0003 | 0.1817 | 0.0004 | 0.0004 | 0.0005 | ±0.20% | 1,272,815 |
capitalize
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 14.18M | 0.0000 | 0.0488 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 7,091,042 |
| es-toolkit | 13.83M | 0.0000 | 3.0591 | 0.0001 | 0.0001 | 0.0001 | ±1.20% | 6,915,355 |
| arkhe | 13.46M | 0.0000 | 0.0398 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 6,727,724 |
| lodash-es | 11.58M | 0.0000 | 0.0324 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 5,789,361 |
deburr
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 4.88M | 0.0001 | 0.2231 | 0.0002 | 0.0002 | 0.0003 | ±0.16% | 2,440,385 |
| es-toolkit/compat | 4.14M | 0.0001 | 0.1622 | 0.0002 | 0.0003 | 0.0003 | ±0.10% | 2,067,522 |
| es-toolkit | 4.10M | 0.0001 | 1.5100 | 0.0002 | 0.0003 | 0.0003 | ±0.60% | 2,047,896 |
| arkhe | 3.88M | 0.0002 | 6.2405 | 0.0003 | 0.0003 | 0.0003 | ±2.45% | 1,937,938 |
escape
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 6.62M | 0.0000 | 0.1682 | 0.0002 | 0.0002 | 0.0002 | ±0.14% | 3,309,030 |
| arkhe | 6.57M | 0.0000 | 0.1949 | 0.0002 | 0.0002 | 0.0002 | ±0.23% | 3,284,145 |
| es-toolkit | 6.53M | 0.0000 | 1.8152 | 0.0002 | 0.0002 | 0.0002 | ±0.81% | 3,264,588 |
| lodash-es | 5.91M | 0.0001 | 0.1762 | 0.0002 | 0.0002 | 0.0002 | ±0.18% | 2,955,156 |
escape longString
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 238.65K | 0.0040 | 0.2418 | 0.0042 | 0.0041 | 0.0053 | ±0.22% | 119,325 |
| es-toolkit | 238.45K | 0.0040 | 0.1915 | 0.0042 | 0.0041 | 0.0053 | ±0.22% | 119,225 |
| arkhe | 234.84K | 0.0040 | 0.2038 | 0.0043 | 0.0042 | 0.0053 | ±0.22% | 117,423 |
| lodash-es | 233.73K | 0.0040 | 0.1924 | 0.0043 | 0.0042 | 0.0054 | ±0.20% | 116,866 |
escapeRegExp
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 1.80M | 0.0004 | 1.2783 | 0.0006 | 0.0005 | 0.0007 | ±0.51% | 900,604 |
| arkhe | 1.72M | 0.0004 | 2.0181 | 0.0006 | 0.0006 | 0.0007 | ±0.79% | 858,904 |
| es-toolkit/compat | 1.68M | 0.0004 | 2.8059 | 0.0006 | 0.0006 | 0.0008 | ±1.10% | 842,350 |
| lodash-es | 1.64M | 0.0004 | 0.1083 | 0.0006 | 0.0007 | 0.0008 | ±0.12% | 820,130 |
kebabCase
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.09M | 0.0008 | 0.1367 | 0.0009 | 0.0009 | 0.0012 | ±0.13% | 547,451 |
| es-toolkit | 1.03M | 0.0008 | 0.0879 | 0.0010 | 0.0010 | 0.0012 | ±0.13% | 516,741 |
| lodash-es | 704.03K | 0.0013 | 0.1647 | 0.0014 | 0.0014 | 0.0018 | ±0.13% | 352,014 |
| es-toolkit/compat | 343.82K | 0.0027 | 0.0823 | 0.0029 | 0.0029 | 0.0035 | ±0.12% | 171,909 |
lowerFirst
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 20.78M | 0.0000 | 0.0355 | 0.0000 | 0.0000 | 0.0001 | ±0.08% | 10,389,483 |
| es-toolkit | 19.36M | 0.0000 | 0.0400 | 0.0001 | 0.0000 | 0.0001 | ±0.09% | 9,677,775 |
| es-toolkit/compat | 19.30M | 0.0000 | 0.0403 | 0.0001 | 0.0000 | 0.0001 | ±0.09% | 9,650,526 |
| lodash-es | 17.38M | 0.0000 | 0.0416 | 0.0001 | 0.0001 | 0.0001 | ±0.09% | 8,690,952 |
snakeCase
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.10M | 0.0008 | 0.1402 | 0.0009 | 0.0009 | 0.0011 | ±0.16% | 551,561 |
| es-toolkit | 1.05M | 0.0008 | 0.0658 | 0.0010 | 0.0010 | 0.0012 | ±0.09% | 525,065 |
| lodash-es | 692.38K | 0.0013 | 0.1992 | 0.0014 | 0.0014 | 0.0018 | ±0.19% | 346,193 |
| es-toolkit/compat | 352.57K | 0.0026 | 0.0888 | 0.0028 | 0.0028 | 0.0034 | ±0.14% | 176,287 |
template interpolate
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 3.19M | 0.0002 | 4.1862 | 0.0003 | 0.0003 | 0.0004 | ±1.64% | 1,593,956 |
| es-toolkit/compat | 545.08K | 0.0015 | 0.0703 | 0.0018 | 0.0018 | 0.0038 | ±0.23% | 272,539 |
| lodash-es | 424.79K | 0.0020 | 6.1466 | 0.0024 | 0.0023 | 0.0038 | ±2.42% | 212,396 |
template nested
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.52M | 0.0005 | 0.1221 | 0.0007 | 0.0007 | 0.0008 | ±0.14% | 758,633 |
| es-toolkit/compat | 475.02K | 0.0018 | 0.1661 | 0.0021 | 0.0020 | 0.0034 | ±0.26% | 237,509 |
| lodash-es | 390.22K | 0.0023 | 0.1333 | 0.0026 | 0.0025 | 0.0030 | ±0.15% | 195,109 |
truncate long ascii
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 20.32M | 0.0000 | 0.5449 | 0.0000 | 0.0000 | 0.0001 | ±0.28% | 10,161,335 |
| es-toolkit/compat | 12.82M | 0.0000 | 4.9352 | 0.0001 | 0.0001 | 0.0002 | ±1.96% | 6,409,935 |
| lodash-es | 11.65M | 0.0000 | 0.3816 | 0.0001 | 0.0001 | 0.0002 | ±0.21% | 5,824,254 |
truncate long unicode
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 11.37M | 0.0000 | 0.3153 | 0.0001 | 0.0001 | 0.0002 | ±0.32% | 5,685,917 |
| es-toolkit/compat | 88.99K | 0.0094 | 1.1395 | 0.0112 | 0.0108 | 0.0206 | ±0.80% | 44,495 |
| lodash-es | 48.38K | 0.0178 | 1.9348 | 0.0207 | 0.0203 | 0.0435 | ±0.98% | 24,189 |
truncate noop long ascii
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 25.68M | 0.0000 | 0.0345 | 0.0000 | 0.0000 | 0.0001 | ±0.07% | 12,838,367 |
| lodash-es | 16.69M | 0.0000 | 0.0333 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 8,343,851 |
| es-toolkit/compat | 14.66M | 0.0000 | 0.1345 | 0.0001 | 0.0001 | 0.0001 | ±0.13% | 7,331,955 |
truncate noop long unicode
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 26.15M | 0.0000 | 0.0365 | 0.0000 | 0.0000 | 0.0001 | ±0.10% | 13,073,282 |
| es-toolkit/compat | 96.14K | 0.0088 | 9.6682 | 0.0104 | 0.0095 | 0.0316 | ±3.80% | 48,072 |
| lodash-es | 53.27K | 0.0174 | 0.2085 | 0.0188 | 0.0188 | 0.0278 | ±0.26% | 26,635 |
truncate noop short ascii
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 24.81M | 0.0000 | 3.7088 | 0.0000 | 0.0000 | 0.0001 | ±1.52% | 12,406,590 |
| lodash-es | 15.57M | 0.0000 | 1.3641 | 0.0001 | 0.0001 | 0.0001 | ±0.70% | 7,785,262 |
| es-toolkit/compat | 14.58M | 0.0000 | 0.4867 | 0.0001 | 0.0001 | 0.0001 | ±0.33% | 7,287,891 |
truncate noop short unicode
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 26.80M | 0.0000 | 0.0378 | 0.0000 | 0.0000 | 0.0001 | ±0.10% | 13,397,660 |
| es-toolkit/compat | 7.03M | 0.0000 | 4.6212 | 0.0001 | 0.0002 | 0.0002 | ±1.83% | 3,517,422 |
| lodash-es | 3.78M | 0.0002 | 0.2841 | 0.0003 | 0.0003 | 0.0003 | ±0.31% | 1,891,482 |
truncate short ascii
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 23.93M | 0.0000 | 1.8306 | 0.0000 | 0.0000 | 0.0001 | ±1.04% | 11,962,991 |
| lodash-es | 18.52M | 0.0000 | 0.6806 | 0.0001 | 0.0001 | 0.0001 | ±0.45% | 9,259,813 |
| es-toolkit/compat | 14.27M | 0.0000 | 0.3502 | 0.0001 | 0.0001 | 0.0001 | ±0.32% | 7,135,037 |
truncate short unicode
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 23.56M | 0.0000 | 16.4543 | 0.0000 | 0.0000 | 0.0001 | ±6.48% | 11,780,489 |
| es-toolkit/compat | 6.59M | 0.0000 | 4.3092 | 0.0002 | 0.0002 | 0.0002 | ±3.35% | 3,294,918 |
| lodash-es | 3.44M | 0.0002 | 1.4352 | 0.0003 | 0.0003 | 0.0006 | ±0.69% | 1,721,949 |
unescape
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 5.26M | 0.0001 | 7.1318 | 0.0002 | 0.0002 | 0.0003 | ±2.80% | 2,629,902 |
| lodash-es | 4.98M | 0.0001 | 0.0290 | 0.0002 | 0.0002 | 0.0003 | ±0.07% | 2,490,634 |
| es-toolkit/compat | 4.49M | 0.0001 | 0.1596 | 0.0002 | 0.0002 | 0.0003 | ±0.15% | 2,245,805 |
| es-toolkit | 4.30M | 0.0001 | 0.0759 | 0.0002 | 0.0002 | 0.0003 | ±0.10% | 2,151,058 |
unescape long
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 26.39K | 0.0356 | 0.3169 | 0.0379 | 0.0376 | 0.0493 | ±0.25% | 13,196 |
| lodash-es | 26.36K | 0.0358 | 0.2494 | 0.0379 | 0.0377 | 0.0480 | ±0.20% | 13,179 |
| es-toolkit | 18.51K | 0.0514 | 0.2733 | 0.0540 | 0.0538 | 0.0637 | ±0.22% | 9,254 |
| es-toolkit/compat | 18.38K | 0.0514 | 0.3113 | 0.0544 | 0.0540 | 0.0674 | ±0.24% | 9,189 |
words
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 3.76M | 0.0002 | 0.1279 | 0.0003 | 0.0003 | 0.0003 | ±0.16% | 1,879,011 |
| lodash-es | 2.19M | 0.0003 | 0.1338 | 0.0005 | 0.0005 | 0.0006 | ±0.15% | 1,096,632 |
| es-toolkit | 395.31K | 0.0024 | 0.0612 | 0.0025 | 0.0025 | 0.0029 | ±0.09% | 197,654 |
| es-toolkit/compat | 315.69K | 0.0030 | 0.9161 | 0.0032 | 0.0031 | 0.0040 | ±0.37% | 157,843 |
Util4
defaultTo
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| lodash-es 🏆 | 30.76M | 0.0000 | 0.0336 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 15,378,390 |
| arkhe | 30.44M | 0.0000 | 0.0259 | 0.0000 | 0.0000 | 0.0000 | ±0.08% | 15,222,213 |
| es-toolkit/compat | 30.19M | 0.0000 | 0.0363 | 0.0000 | 0.0000 | 0.0000 | ±0.09% | 15,096,135 |
range
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 10.41M | 0.0000 | 4.8912 | 0.0001 | 0.0001 | 0.0001 | ±1.94% | 5,206,077 |
| arkhe | 10.07M | 0.0000 | 0.1443 | 0.0001 | 0.0001 | 0.0001 | ±0.28% | 5,034,456 |
| es-toolkit/compat | 9.49M | 0.0000 | 5.2777 | 0.0001 | 0.0001 | 0.0002 | ±2.09% | 4,746,119 |
| lodash-es | 5.53M | 0.0001 | 2.7457 | 0.0002 | 0.0002 | 0.0003 | ±1.10% | 2,764,716 |
times
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit/compat 🏆 | 1.03M | 0.0008 | 0.0583 | 0.0010 | 0.0010 | 0.0014 | ±0.13% | 515,254 |
| arkhe | 928.79K | 0.0008 | 1.3439 | 0.0011 | 0.0011 | 0.0016 | ±0.56% | 464,397 |
| lodash-es | 859.05K | 0.0009 | 1.2861 | 0.0012 | 0.0012 | 0.0018 | ±0.54% | 429,524 |
uniqueId
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 11.80M | 0.0000 | 0.0184 | 0.0001 | 0.0001 | 0.0001 | ±0.07% | 5,901,746 |
| es-toolkit/compat | 11.59M | 0.0000 | 0.0377 | 0.0001 | 0.0001 | 0.0001 | ±0.08% | 5,795,787 |
| lodash-es | 8.56M | 0.0000 | 0.2271 | 0.0001 | 0.0001 | 0.0001 | ±0.40% | 4,279,726 |
Other6
lowerCase emoji
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 2.22M | 0.0003 | 0.1724 | 0.0005 | 0.0005 | 0.0006 | ±0.15% | 1,110,718 |
| lodash-es | 1.77M | 0.0005 | 0.1892 | 0.0006 | 0.0006 | 0.0007 | ±0.19% | 885,146 |
| es-toolkit | 864.71K | 0.0010 | 0.2100 | 0.0012 | 0.0012 | 0.0015 | ±0.18% | 432,355 |
| es-toolkit/compat | 535.04K | 0.0017 | 0.1717 | 0.0019 | 0.0019 | 0.0022 | ±0.14% | 267,520 |
lowerCase longString
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 10.72K | 0.0892 | 0.2992 | 0.0933 | 0.0923 | 0.1125 | ±0.30% | 5,358 |
| lodash-es | 9.59K | 0.1000 | 0.3318 | 0.1042 | 0.1033 | 0.1244 | ±0.28% | 4,797 |
| es-toolkit | 8.67K | 0.1109 | 0.3793 | 0.1153 | 0.1147 | 0.1349 | ±0.34% | 4,336 |
| es-toolkit/compat | 2.07K | 0.4652 | 0.6840 | 0.4843 | 0.4862 | 0.6266 | ±0.27% | 1,033 |
lowerCase shortString
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 12.40M | 0.0000 | 0.1626 | 0.0001 | 0.0001 | 0.0001 | ±0.19% | 6,202,041 |
| es-toolkit | 6.34M | 0.0000 | 0.1903 | 0.0002 | 0.0002 | 0.0002 | ±0.17% | 3,169,127 |
| lodash-es | 4.37M | 0.0001 | 0.1261 | 0.0002 | 0.0003 | 0.0003 | ±0.11% | 2,186,245 |
| es-toolkit/compat | 2.82M | 0.0002 | 0.2268 | 0.0004 | 0.0004 | 0.0005 | ±0.20% | 1,408,568 |
upperCase emoji
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 1.82M | 0.0004 | 0.1337 | 0.0005 | 0.0005 | 0.0007 | ±0.14% | 911,325 |
| lodash-es | 1.59M | 0.0005 | 0.1612 | 0.0006 | 0.0006 | 0.0008 | ±0.17% | 793,345 |
| es-toolkit | 873.17K | 0.0010 | 0.2096 | 0.0011 | 0.0011 | 0.0014 | ±0.17% | 436,588 |
| es-toolkit/compat | 537.98K | 0.0017 | 0.1819 | 0.0019 | 0.0018 | 0.0023 | ±0.21% | 268,992 |
upperCase longString
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| es-toolkit 🏆 | 7.46K | 0.1281 | 0.3712 | 0.1340 | 0.1334 | 0.1616 | ±0.30% | 3,733 |
| arkhe | 7.02K | 0.1362 | 0.3631 | 0.1424 | 0.1433 | 0.1617 | ±0.28% | 3,511 |
| lodash-es | 6.63K | 0.1453 | 0.3630 | 0.1508 | 0.1509 | 0.1770 | ±0.23% | 3,316 |
| es-toolkit/compat | 2.24K | 0.4260 | 0.6560 | 0.4461 | 0.4465 | 0.6112 | ±0.32% | 1,121 |
upperCase shortString
| Library | ops/s | min | max | mean | p75 | p99 | rme | samples |
|---|---|---|---|---|---|---|---|---|
| arkhe 🏆 | 8.00M | 0.0000 | 0.0504 | 0.0001 | 0.0001 | 0.0002 | ±0.09% | 3,999,492 |
| es-toolkit | 6.13M | 0.0000 | 0.2083 | 0.0002 | 0.0002 | 0.0002 | ±0.17% | 3,062,674 |
| lodash-es | 3.61M | 0.0002 | 5.9083 | 0.0003 | 0.0003 | 0.0003 | ±2.32% | 1,806,868 |
| es-toolkit/compat | 2.79M | 0.0002 | 0.1146 | 0.0004 | 0.0004 | 0.0004 | ±0.15% | 1,392,600 |
Reproduce These Results
Want to verify these results? See how to reproduce our data.
Related
- Arkhe vs Lodash — Full comparison: philosophy, API, migration
- Taphos — Performance — Deprecated utilities benchmarks (same libraries)
- Equivalence Table — Full library equivalence across all modules