Does transforming the entire response make a significant difference? (v3)

Revision 3 of this benchmark created on


Setup

async function wait() {
	return new Promise(res => setTimeout(res, 100));
}

function getData() {
	return {
		a: "foo", 
		b: "bar",
		c: "charles",
		d: "delta",
		e: "echo"
	}
}

Test runner

Ready to run.

Testing in
TestOps/sec
Transform all
async function main() {
	const result = getData(); 
	const transformedResult = {
		a: result.a.split(),
		b: result.b.split(),
		c: result.c.split(),
		d: result.d.split(),
		e: result.e.split(),
	}
	const narrowedResult = {
		a: transformedResult.a
	}
}


(async function start(){
	await main(); 
    deferred.resolve()

})()
ready
Transform 1
async function main() {
	const result = getData(); 
	const transformedResult = {
		a: result.a.split(),
	}
	const narrowedResult = {
		a: transformedResult.a
	}
}

(async function start(){
	await main(); 
    deferred.resolve()

})()
ready
Transform all - with wait
async function main() {
	await wait();
	const result = getData(); 
	const transformedResult = {
		a: result.a.split(),
		b: result.b.split(),
		c: result.c.split(),
		d: result.d.split(),
		e: result.e.split(),
	}
	const narrowedResult = {
		a: transformedResult.a
	}
}

(async function start(){
	await main(); 
    deferred.resolve()

})()
ready
Transform 1 - with burn cycles
async function main() {
	await wait();
	const result = getData(); 
	const transformedResult = {
		a: result.a.split(),
	}
	const narrowedResult = {
		a: transformedResult.a
	}
}

(async function start(){
	await main(); 
    deferred.resolve()

})()
ready

Revisions

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