Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
R.pathOr vs optional chaining
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36
Browser:
Chrome 137
Operating system:
Windows
Device Platform:
Desktop
Date tested:
11 months ago
Test name
Executions per second
With Ramda
6.7 Ops/sec
With optional chaining
22.9 Ops/sec
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.30.0/ramda.min.js"></script>
Script Preparation code:
var account1 = { subscriptions: { suite: { status: 'in_trial', currentTermStart: new Date(), currentTermEnd: new Date() } } }; var account2 = { subscriptions: { suite: { status: 'active', currentTermStart: new Date(), currentTermEnd: new Date() } } }; var account3 = { subscriptions: { myplan_v1: { status: 'active', currentTermStart: new Date(), currentTermEnd: new Date() } } }; var iterations = 1000000;
Tests:
With Ramda
for (i = 0; i < iterations; i++) { const res1 = R.pathOr(null, ['subscriptions', 'suite', 'status'], account1) === 'in_trial'; const res2 = R.pathOr(null, ['subscriptions', 'suite', 'status'], account2) === 'in_trial'; const res3 = R.pathOr(null, ['subscriptions', 'suite', 'status'], account3) === 'in_trial'; }
With optional chaining
for (i = 0; i < iterations; i++) { const res1 = account1?.subscriptions?.suite?.status === 'in_trial'; const res2 = account2?.subscriptions?.suite?.status === 'in_trial'; const res3 = account3?.subscriptions?.suite?.status === 'in_trial'; }