Open Bug 1405462 Opened 7 years ago Updated 2 years ago

Run the bluebird promise benchmark in some form

Categories

(Core :: JavaScript Engine, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: evilpies, Unassigned)

References

(Blocks 1 open bug, )

Details

We can tell that the v8 team internally runs some kind of bluebird benchmark for promises. We have various issues with promise performance, so it would be good to get something we can track. This requires a bit of an investment to figure out which benchmark would be relevant. http://bluebirdjs.com/docs/benchmarks.html we can see various *-ecmascript6-native.js benchmarks.
These benchmarks are made for usage under node and use a few node intrinsics: require, process.nextTick etc. So we'd need to adapt them first. Usage of setTimeout would probably mean running them in a browser and not simply in the shell, which means more variance between runs.
Component: AWFY → Performance
Whiteboard: [perftest:triage]

(In reply to Benjamin Bouvier [:bbouvier] from comment #1)

These benchmarks are made for usage under node and use a few node
intrinsics: require, process.nextTick etc. So we'd need to adapt them first.

Usage of setTimeout would probably mean running them in a browser and not
simply in the shell, which means more variance between runs.

Now that we have node.js in tree does that change something?

Flags: needinfo?(bbouvier)
Priority: -- → P3

If we ran it in node.js, we'd not be testing our JavaScript engine but node.js' one, that is v8, so I don't think so (maybe I misunderstood something though). The way to go here would be to implement enough shims in the Spidermonkey JS shell so it could run this benchmark.

:evilpie, :jandem, is promise benchmarking still relevant, though? Do we have other benchmarks for this (maybe six-speed)?

Flags: needinfo?(jdemooij)
Flags: needinfo?(evilpies)
Flags: needinfo?(bbouvier)

IMO promise performance is still important and we can do better, and it would be great to have benchmarks we can run in both our/V8 shells. I'm not sure how representative these benchmarks are though.

Flags: needinfo?(jdemooij)

I think for test that use Promises a lot it might almost be easier to run this in the browser. I am sure some of the browser benchmarks already have async code.

Flags: needinfo?(evilpies)

Moving this to "Core :: Javascript Engine". Feel free to move it back if needed.

Can you provide a test that should be added and that is capable of returning some results that we can parse in one of our frameworks? Maybe some of this testing is already covered in the benchmarks we are running now?

Component: Performance → JavaScript Engine
Flags: needinfo?(bbouvier)
Product: Testing → Core
Version: Version 3 → unspecified

Redirecting to somebody on the JS team.

Flags: needinfo?(bbouvier) → needinfo?(jdemooij)

Sorry, I'm not familiar with this benchmark and I'm pretty busy these days. Maybe JetStream 2 has some tests that use promises, but I'm not sure.

Flags: needinfo?(jdemooij)
Whiteboard: [perftest:triage]
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.