Reaccessing Array.prototype.length within a for loop

Benchmark created on


Test runner

Ready to run.

Testing in
TestOps/sec
No Variable Caching x100
const foo = new Array(100);
for (let i = 0; i < foo.length; i++) {
	const bar = foo.length;
}
ready
Variable Caching x100
const foo = new Array(100);
const fooLength = foo.length;

for (let i = 0; i < foo.length; i++) {
	const bar = fooLength;
}
ready
No Variable Caching x1,000
const foo = new Array(1_000);
for (let i = 0; i < foo.length; i++) {
	const bar = foo.length;
}
ready
Variable Caching x1,000
const foo = new Array(1_000);
const fooLength = foo.length;

for (let i = 0; i < foo.length; i++) {
	const bar = fooLength;
}
ready
No Variable Caching x10,000
const foo = new Array(10_000);
for (let i = 0; i < foo.length; i++) {
	const bar = foo.length;
}
ready
Variable Caching x10,000
const foo = new Array(10_000);
const fooLength = foo.length;

for (let i = 0; i < foo.length; i++) {
	const bar = fooLength;
}
ready
No Variable Caching x100,000
const foo = new Array(100_000);
for (let i = 0; i < foo.length; i++) {
	const bar = foo.length;
}
ready
Variable Caching x100,000
const foo = new Array(100_000);
const fooLength = foo.length;

for (let i = 0; i < foo.length; i++) {
	const bar = fooLength;
}
ready
No Variable Caching x1,000,000
const foo = new Array(1_000_000);
for (let i = 0; i < foo.length; i++) {
	const bar = foo.length;
}
ready
Variable Caching x1,000,000
const foo = new Array(1_000_000);
const fooLength = foo.length;

for (let i = 0; i < foo.length; i++) {
	const bar = fooLength;
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.