Skip to content

Conversation

@cesco69
Copy link
Contributor

@cesco69 cesco69 commented Jan 9, 2026

🚀 LRU Cache Library Comparison Benchmark

Cache Size: 1000 items
Iterations: 10.000
Node.js: v24.0.1
Platform: win32 x64

📊 SET Operations Benchmark
==================================================
┌─────────┬─────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name           │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼─────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru set'      │ '10531 ± 14.17%' │ '4600.0 ± 300.00' │ '198680 ± 0.13%'       │ '217391 ± 13310'       │ 189915  │
│ 1       │ 'tiny-lru-ttl set'  │ '15619 ± 12.14%' │ '9200.0 ± 500.00' │ '101357 ± 0.14%'       │ '108696 ± 5603'        │ 128048  │
│ 2       │ 'lru-cache set'     │ '6285.4 ± 1.09%' │ '5500.0 ± 300.00' │ '178130 ± 0.06%'       │ '181818 ± 10490'       │ 318198  │
│ 3       │ 'lru-cache-ttl set' │ '8660.9 ± 0.65%' │ '7800.0 ± 300.00' │ '124538 ± 0.07%'       │ '128205 ± 5128'        │ 230923  │
│ 4       │ 'quick-lru set'     │ '2939.8 ± 0.79%' │ '2400.0 ± 300.00' │ '397303 ± 0.06%'       │ '416667 ± 46296'       │ 680321  │
│ 5       │ 'mnemonist set'     │ '5988.8 ± 0.94%' │ '3900.0 ± 200.00' │ '236226 ± 0.09%'       │ '256410 ± 13860'       │ 333955  │
└─────────┴─────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 GET Operations Benchmark
==================================================
┌─────────┬─────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name           │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼─────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru get'      │ '1350.5 ± 0.05%' │ '1300.0 ± 100.00' │ '750841 ± 0.01%'       │ '769231 ± 54945'       │ 1480980 │
│ 1       │ 'tiny-lru-ttl get'  │ '5442.8 ± 0.05%' │ '5400.0 ± 100.00' │ '185228 ± 0.02%'       │ '185185 ± 3494'        │ 367460  │
│ 2       │ 'lru-cache get'     │ '1952.2 ± 0.09%' │ '1900.0 ± 100.00' │ '520616 ± 0.01%'       │ '526316 ± 26316'       │ 1024509 │
│ 3       │ 'lru-cache-ttl get' │ '2294.3 ± 0.04%' │ '2300.0 ± 100.00' │ '439807 ± 0.01%'       │ '434783 ± 18116'       │ 871728  │
│ 4       │ 'quick-lru get'     │ '1712.2 ± 0.05%' │ '1700.0 ± 100.00' │ '592920 ± 0.02%'       │ '588235 ± 32680'       │ 1168094 │
│ 5       │ 'mnemonist get'     │ '1108.6 ± 0.08%' │ '1100.0 ± 100.00' │ '920125 ± 0.01%'       │ '909091 ± 75758'       │ 1804134 │
└─────────┴─────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 DELETE Operations Benchmark
==================================================
┌─────────┬────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name          │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru delete'  │ '6629.3 ± 1.50%' │ '6700.0 ± 700.00' │ '166203 ± 0.08%'       │ '149254 ± 14119'       │ 301694  │
│ 1       │ 'lru-cache delete' │ '6842.3 ± 0.56%' │ '6100.0 ± 600.00' │ '155836 ± 0.06%'       │ '163934 ± 17884'       │ 292298  │
│ 2       │ 'quick-lru delete' │ '4959.2 ± 2.25%' │ '4100.0 ± 500.00' │ '225144 ± 0.07%'       │ '243902 ± 33875'       │ 403289  │
│ 3       │ 'mnemonist delete' │ '6286.5 ± 0.85%' │ '6700.0 ± 600.00' │ '167622 ± 0.07%'       │ '149254 ± 12267'       │ 318143  │
└─────────┴────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 UPDATE Operations Benchmark
==================================================
┌─────────┬────────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name              │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru update'      │ '1193.2 ± 0.10%' │ '1200.0 ± 100.00' │ '852516 ± 0.01%'       │ '833333 ± 64103'       │ 1676200 │
│ 1       │ 'tiny-lru-ttl update'  │ '1195.0 ± 0.05%' │ '1200.0 ± 100.00' │ '849120 ± 0.01%'       │ '833333 ± 64103'       │ 1673670 │
│ 2       │ 'lru-cache update'     │ '2189.2 ± 0.28%' │ '2100.0 ± 100.00' │ '470797 ± 0.02%'       │ '476190 ± 21645'       │ 913573  │
│ 3       │ 'lru-cache-ttl update' │ '4721.2 ± 0.22%' │ '4600.0 ± 100.00' │ '215969 ± 0.02%'       │ '217391 ± 4831'        │ 423618  │
│ 4       │ 'quick-lru update'     │ '1903.0 ± 0.15%' │ '1900.0 ± 100.00' │ '533334 ± 0.02%'       │ '526316 ± 26316'       │ 1050990 │
│ 5       │ 'mnemonist update'     │ '1077.2 ± 0.05%' │ '1100.0 ± 0.00'   │ '940049 ± 0.01%'       │ '909091 ± 0'           │ 1856670 │
└─────────┴────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 Memory Usage Analysis
==================================================

Memory Usage Results:
┌─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ Library         │ Bundle Size     │ Memory/Item     │ Total Memory    │
├─────────────────┼─────────────────┼─────────────────┼─────────────────┤
│ tiny-lru        │ N/A             │ 243 bytes       │ 238 KB          │
│ tiny-lru-ttl    │ N/A             │ 195 bytes       │ 190 KB          │
│ lru-cache       │ N/A             │ 114 bytes       │ 111 KB          │
│ lru-cache-ttl   │ N/A             │ 162 bytes       │ 158 KB          │
│ quick-lru       │ N/A             │ 154 bytes       │ 151 KB          │
│ mnemonist       │ ~45KB           │ 136 bytes       │ 132 KB          │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┘

📊 Performance Summary
==================================================

Operations per second (higher is better):
┌─────────────────┬─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ Library         │ SET ops/sec     │ GET ops/sec     │ UPDATE ops/sec  │ DELETE ops/sec  │
├─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┤
│ tiny-lru        │ 0               │ 0               │ 0               │ 0               │
│ lru-cache       │ 0               │ 0               │ 0               │ 0               │
│ quick-lru       │ 0               │ 0               │ 0               │ 0               │
│ mnemonist       │ 0               │ 0               │ 0               │ 0               │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┴─────────────────┘

✅ Benchmark completed!

To regenerate this data, run: npm run benchmark:comparison

@avoidwork
Copy link
Owner

Hi! the benchmarks don't cover the changes you've made.

@avoidwork avoidwork mentioned this pull request Jan 14, 2026
@avoidwork
Copy link
Owner

Could you sync with the main branch to get the updated benchmarks, and share the results of npm run benchmark:perf, thanks!

@avoidwork
Copy link
Owner

I did the comparison locally; here's a summary from gpt-oss:120b

Focused comparison – lru.keys, lru.values, lru.entries

Method Avg time (run 1) Avg time (run 2) Δ % (time) Ops/sec (run 1) Ops/sec (run 2) Δ % (throughput)
lru.keys 0.002259 ms 0.002168 ms ‑4.0 % (faster) 442 667 461 189 +4.2 %
lru.values 0.018052 ms 0.016303 ms ‑9.7 % (faster) 55 395 61 340 +10.7 %
lru.entries 0.020361 ms 0.018461 ms ‑9.3 % (faster) 49 114 54 167 +10.3 %

What the numbers mean

Observation Interpretation
All three methods are faster in the second run The average execution time dropped 4‑10 %, translating into a 4‑11 % increase in operations per second.
lru.values and lru.entries show the biggest gains Both are ~9‑10 % quicker. These are the most expensive of the three (they have to allocate and copy whole value/entry arrays), so any JIT warm‑up or reduced GC pressure in the second run yields a noticeable improvement.
lru.keys improves modestly Keys are a lighter operation (just returning an array of stored keys), so the performance delta is smaller – a 4 % speed‑up is still respectable.
Std‑dev & max‑time stay similar The variability (Std Dev) and worst‑case latency are in the same range for both runs, indicating the improvements are consistent rather than an outlier.
Implications for real‑world usage If your application frequently enumerates the cache (e.g., for metrics, debugging, or bulk eviction), you’ll see a modest but measurable reduction in latency—roughly 0.2 ms per 10 k calls for keys and about 2 ms per 10 k calls for values/entries. In a high‑throughput service that performs many such enumerations per second, this can translate into a few percent overall CPU savings.

Bottom line

  • lru.keys – 4 % faster, +4 % more ops/sec.
  • lru.values – ~10 % faster, +11 % more ops/sec.
  • lru.entries – ~10 % faster, +10 % more ops/sec.

The second benchmark run demonstrates a clear performance advantage for the three enumeration‑type methods, with the greatest benefit seen on the heavier values and entries calls. If your workload relies heavily on pulling full key/value lists from the LRU cache, you can expect a noticeable latency reduction and higher throughput in the second run.

Copy link
Owner

@avoidwork avoidwork left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

@cesco69
Copy link
Contributor Author

cesco69 commented Jan 14, 2026

🚀 LRU Cache Library Comparison Benchmark

Cache Size: 1000 items
Iterations: 10.000
Node.js: v24.0.1
Platform: win32 x64

📊 SET Operations Benchmark
==================================================
┌─────────┬─────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name           │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼─────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru set'      │ '13608 ± 18.98%' │ '4900.0 ± 600.00' │ '177817 ± 0.17%'       │ '204082 ± 28477'       │ 148072  │
│ 1       │ 'tiny-lru-ttl set'  │ '19755 ± 15.67%' │ '10300 ± 1800.0'  │ '86884 ± 0.20%'        │ '97087 ± 19192'        │ 102609  │
│ 2       │ 'lru-cache set'     │ '7658.7 ± 1.23%' │ '6100.0 ± 900.00' │ '152525 ± 0.10%'       │ '163934 ± 24745'       │ 261143  │
│ 3       │ 'lru-cache-ttl set' │ '10576 ± 0.94%'  │ '8600.0 ± 1100.0' │ '106227 ± 0.11%'       │ '116279 ± 15300'       │ 189104  │
│ 4       │ 'quick-lru set'     │ '3530.2 ± 1.67%' │ '2800.0 ± 500.00' │ '345710 ± 0.08%'       │ '357143 ± 77640'       │ 566538  │
│ 5       │ 'mnemonist set'     │ '6976.7 ± 0.78%' │ '4300.0 ± 500.00' │ '206497 ± 0.12%'       │ '232558 ± 30600'       │ 286670  │
└─────────┴─────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 GET Operations Benchmark
==================================================
┌─────────┬─────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name           │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼─────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru get'      │ '1407.6 ± 0.08%' │ '1300.0 ± 100.00' │ '744514 ± 0.03%'       │ '769231 ± 64103'       │ 1420845 │
│ 1       │ 'tiny-lru-ttl get'  │ '7151.2 ± 0.61%' │ '7100.0 ± 700.00' │ '145951 ± 0.06%'       │ '140845 ± 13001'       │ 279681  │
│ 2       │ 'lru-cache get'     │ '2235.6 ± 0.08%' │ '2000.0 ± 200.00' │ '466533 ± 0.04%'       │ '500000 ± 55556'       │ 894621  │
│ 3       │ 'lru-cache-ttl get' │ '2710.1 ± 0.21%' │ '2500.0 ± 300.00' │ '385859 ± 0.04%'       │ '400000 ± 54545'       │ 737986  │
│ 4       │ 'quick-lru get'     │ '1857.9 ± 0.07%' │ '1700.0 ± 200.00' │ '558786 ± 0.03%'       │ '588235 ± 61920'       │ 1076470 │
│ 5       │ 'mnemonist get'     │ '1159.3 ± 0.40%' │ '1100.0 ± 100.00' │ '907162 ± 0.03%'       │ '909091 ± 90909'       │ 1725118 │
└─────────┴─────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 DELETE Operations Benchmark
==================================================
┌─────────┬────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name          │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru delete'  │ '8031.5 ± 1.79%' │ '7500.0 ± 1200.0' │ '140042 ± 0.10%'       │ '133333 ± 19697'       │ 249020  │
│ 1       │ 'lru-cache delete' │ '8653.4 ± 1.19%' │ '8100.0 ± 1400.0' │ '124957 ± 0.09%'       │ '123457 ± 20364'       │ 231123  │
│ 2       │ 'quick-lru delete' │ '5984.8 ± 2.68%' │ '5300.0 ± 1100.0' │ '190572 ± 0.09%'       │ '188679 ± 38593'       │ 334182  │
│ 3       │ 'mnemonist delete' │ '7679.2 ± 0.33%' │ '7400.0 ± 1300.0' │ '140036 ± 0.10%'       │ '135135 ± 21499'       │ 260444  │
└─────────┴────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 UPDATE Operations Benchmark
==================================================
┌─────────┬────────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name              │ Latency avg (ns) │ Latency med (ns)  │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0       │ 'tiny-lru update'      │ '1548.4 ± 0.08%' │ '1400.0 ± 200.00' │ '683062 ± 0.03%'       │ '714286 ± 119048'      │ 1291628 │
│ 1       │ 'tiny-lru-ttl update'  │ '1558.8 ± 0.97%' │ '1400.0 ± 200.00' │ '684089 ± 0.03%'       │ '714286 ± 119048'      │ 1283008 │
│ 2       │ 'lru-cache update'     │ '2647.9 ± 2.64%' │ '2300.0 ± 200.00' │ '405269 ± 0.04%'       │ '434783 ± 34783'       │ 755314  │
│ 3       │ 'lru-cache-ttl update' │ '5747.0 ± 1.08%' │ '4900.0 ± 400.00' │ '186314 ± 0.07%'       │ '204082 ± 18141'       │ 348009  │
│ 4       │ 'quick-lru update'     │ '2318.5 ± 1.17%' │ '2000.0 ± 200.00' │ '458795 ± 0.04%'       │ '500000 ± 55556'       │ 862618  │
│ 5       │ 'mnemonist update'     │ '1433.1 ± 0.08%' │ '1400.0 ± 200.00' │ '734534 ± 0.03%'       │ '714286 ± 119048'      │ 1395593 │
└─────────┴────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘

📊 Memory Usage Analysis
==================================================

Memory Usage Results:
┌─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ Library         │ Bundle Size     │ Memory/Item     │ Total Memory    │
├─────────────────┼─────────────────┼─────────────────┼─────────────────┤
│ tiny-lru        │ N/A             │ 206 bytes       │ 202 KB          │
│ tiny-lru-ttl    │ N/A             │ 195 bytes       │ 190 KB          │
│ lru-cache       │ N/A             │ 114 bytes       │ 111 KB          │
│ lru-cache-ttl   │ N/A             │ 162 bytes       │ 158 KB          │
│ quick-lru       │ N/A             │ 154 bytes       │ 151 KB          │
│ mnemonist       │ ~45KB           │ 119 bytes       │ 117 KB          │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┘

📊 Performance Summary
==================================================

Operations per second (higher is better):
┌─────────────────┬─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ Library         │ SET ops/sec     │ GET ops/sec     │ UPDATE ops/sec  │ DELETE ops/sec  │
├─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┤
│ tiny-lru        │ 0               │ 0               │ 0               │ 0               │
│ lru-cache       │ 0               │ 0               │ 0               │ 0               │
│ quick-lru       │ 0               │ 0               │ 0               │ 0               │
│ mnemonist       │ 0               │ 0               │ 0               │ 0               │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┴─────────────────┘

✅ Benchmark completed!

@avoidwork avoidwork merged commit a1447ba into avoidwork:master Jan 14, 2026
4 checks passed
@avoidwork
Copy link
Owner

that's the comparison benchmark; if you run perf you'll get the lru methods benchmarked

🔬 Node.js Performance API Benchmarks
======================================
Node.js version: v24.13.0
Platform: darwin arm64
Date: 2026-01-14T15:34:53.784Z
🔬 LRU Performance Benchmarks
==============================
(Using CustomTimer for high-resolution function timing)
Running operations...
Phase 1: Initial cache population
Phase 2: Mixed operations
Phase 3: Cache eviction stress test
Phase 4: Clear operations
Phase 5: Additional API method benchmarks

⏱️  Performance Results
========================
┌─────────┬────────────────────────────────┬────────────┬────────────┬────────────┬────────────┬─────────────┬────────────┬──────────┐
│ (index) │ Operation                      │ Iterations │ Avg (ms)   │ Min (ms)   │ Max (ms)   │ Median (ms) │ Std Dev    │ Ops/sec  │
├─────────┼────────────────────────────────┼────────────┼────────────┼────────────┼────────────┼─────────────┼────────────┼──────────┤
│ 0       │ 'lru.set (initial population)' │ 10000      │ '0.000181' │ '0.000041' │ '0.152792' │ '0.000125'  │ '0.001954' │ 5539516  │
│ 1       │ 'lru.get'                      │ 10000      │ '0.000129' │ '0.000041' │ '0.093958' │ '0.000084'  │ '0.001240' │ 7730305  │
│ 2       │ 'lru.set'                      │ 10000      │ '0.000108' │ '0.000041' │ '0.034500' │ '0.000084'  │ '0.000489' │ 9267755  │
│ 3       │ 'lru.has'                      │ 10000      │ '0.000085' │ '0.000041' │ '0.031541' │ '0.000083'  │ '0.000459' │ 11830665 │
│ 4       │ 'lru.keys'                     │ 10000      │ '0.002190' │ '0.001750' │ '0.061792' │ '0.001917'  │ '0.002292' │ 456648   │
│ 5       │ 'lru.values'                   │ 10000      │ '0.016835' │ '0.014625' │ '0.087250' │ '0.015833'  │ '0.003299' │ 59399    │
│ 6       │ 'lru.entries'                  │ 10000      │ '0.019046' │ '0.016208' │ '0.221500' │ '0.017750'  │ '0.005037' │ 52505    │
│ 7       │ 'lru.delete'                   │ 10000      │ '0.000085' │ '0.000041' │ '0.039333' │ '0.000083'  │ '0.000474' │ 11757748 │
│ 8       │ 'lru.set (eviction stress)'    │ 10000      │ '0.000248' │ '0.000125' │ '0.077791' │ '0.000209'  │ '0.000835' │ 4027318  │
│ 9       │ 'lru.clear'                    │ 10000      │ '0.000104' │ '0.000041' │ '0.167041' │ '0.000083'  │ '0.001679' │ 9638220  │
│ 10      │ 'lru.setWithEvicted'           │ 10000      │ '0.000217' │ '0.000083' │ '0.168291' │ '0.000167'  │ '0.001942' │ 4598124  │
│ 11      │ 'lru.expiresAt'                │ 10000      │ '0.000049' │ '0.000000' │ '0.009584' │ '0.000042'  │ '0.000139' │ 20555238 │
└─────────┴────────────────────────────────┴────────────┴────────────┴────────────┴────────────┴─────────────┴────────────┴──────────┘

📈 Scalability Test
===================
Testing cache size: 100
Testing cache size: 500
Testing cache size: 1000
Testing cache size: 5000
Testing cache size: 10000
┌─────────┬───────┬────────────────┬───────────────────┬───────────────────┬───────────────────┐
│ (index) │ Size  │ Set Total (ms) │ Set Per Item (ms) │ Get 1K Items (ms) │ Get Per Item (ms) │
├─────────┼───────┼────────────────┼───────────────────┼───────────────────┼───────────────────┤
│ 0       │ 100   │ '0.03'         │ '0.0003'          │ '0.13'            │ '0.0001'          │
│ 1       │ 500   │ '0.08'         │ '0.0002'          │ '0.07'            │ '0.0001'          │
│ 2       │ 1000  │ '0.15'         │ '0.0002'          │ '0.07'            │ '0.0001'          │
│ 3       │ 5000  │ '0.69'         │ '0.0001'          │ '0.07'            │ '0.0001'          │
│ 4       │ 10000 │ '1.22'         │ '0.0001'          │ '0.10'            │ '0.0001'          │
└─────────┴───────┴────────────────┴───────────────────┴───────────────────┴───────────────────┘

✅ Performance tests completed!

📋 Notes:
- Benchmarks: High-resolution timing with statistical analysis using CustomTimer (based on performance.now())
- Scalability Test: Shows how performance scales with cache size

@avoidwork
Copy link
Owner

this is 11.4.6 👍🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants