Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
parentNode vs firstChild vs nextSibling vs previousSibling (plus bonus: firstChild.nextSibling, querySelectorAll)
Fastest way to find nodes
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15
Browser:
Safari 17
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Benchmark engine:
Benchmark.js
parentNode
30.7M/s
previousSibling
29.8M/s
firstChild
29.7M/s
nextSibling
29.7M/s
firstChild.nextSibling
28.0M/s
querySelectorAll
6.2M/s
View exact numbers
Test name
Executions per second
✓
parentNode
30,653,476 Ops/sec
previousSibling
29,785,298 Ops/sec
firstChild
29,747,742 Ops/sec
nextSibling
29,740,668 Ops/sec
firstChild.nextSibling
27,951,970 Ops/sec
querySelectorAll
6,172,009 Ops/sec
HTML Preparation code:
<html> <body> <div id='test'><div class='child'></div><div></div><div></div></div> </body> </html>
Script Preparation code:
var parent = document.getElementById('test'); var child1 = parent.children[0] var child2 = parent.children[1]
Tests:
parentNode
let n = child1.parentNode;
firstChild
let n = parent.firstChild;
nextSibling
let n = child1.nextSibling
previousSibling
let n = child2.previousSibling
firstChild.nextSibling
let n = parent.firstChild.nextSibling
querySelectorAll
let n = parent.querySelectorAll(".child")[0]