Closed
Bug 969391
Opened 10 years ago
Closed 10 years ago
Firefox slower than Chrome on BitcoinBench
Categories
(Core :: JavaScript Engine: JIT, defect)
Core
JavaScript Engine: JIT
Tracking
()
People
(Reporter: luke, Unassigned)
References
(Depends on 1 open bug)
Details
(Keywords: perf)
Attachments
(1 file)
44.35 KB,
application/x-zip-compressed
|
Details |
Patrick pointed me at this benchmark: https://www.bitgo.com/bitcoinbenchmark/ Nightly gets a score of 105, Chrome Dev gets 148. As discussed in this blog post: http://www.belshe.com/2014/01/31/introducing-the-js-bitcoin-benchmark/ the authors expect this benchmark is representative of bitcoin computations. (As an aside: I wonder if sites have started to embed Web Workers that mine bitcoins as an alternative to ads.)
Comment 1•10 years ago
|
||
So I profiled just the first two subtests: "Address Creation" and "Sign And Verify". The main thing jumping out at me from the profile is that 25% is under js::SetObjectElement, of which half is under JSObject::growElements. Another 50% is in jitcode somewhere. Another 9% is compiling jitcode, looks like. Everything else is fairly long-tail....
Comment 2•10 years ago
|
||
The website uses the Octane harness, I'll try to create a shell benchmark.
Comment 3•10 years ago
|
||
Was pretty easy to run in the shell. I also ran the scripts through jsbeautifier.org
Comment 4•10 years ago
|
||
(In reply to Boris Zbarsky [:bz] from comment #1) > So I profiled just the first two subtests: "Address Creation" and "Sign And > Verify". The main thing jumping out at me from the profile is that 25% is > under js::SetObjectElement, of which half is under JSObject::growElements. Most of the SetObjectElement calls in "Address Creation" are for SETELEMs like this one: for (c = this.t - 1; c >= 0; --c) b[c + g + 1] = this[c] >> e | h, h = (this[c] & f) << d; b has no elements, so the first time we run this loop LSetElementHole's OOL path will call the slow/generic SetObjectElement. Instead, the OOL path could call an helper that just does growElements, if we know there are no indexed elements on the proto. With GGC, we could even realloc the elements in JIT code.
Reporter | ||
Comment 5•10 years ago
|
||
(In reply to Luke Wagner [:luke] from comment #0) > (As an aside: I wonder if sites have started to embed Web Workers that mine > bitcoins as an alternative to ads.) Turns out, yes: http://tidbit.co.in/ And they're using asm.js to boot. I wonder how long until we'll need to add CPU quota management functionality to FF.
Comment 6•10 years ago
|
||
My results on Windows 7 Nightly Address Creation 79.5 Sign And Verify 123* SHA 89.2 Scrypt 131 AddressChain 91.2 AES 73.3 Chrome 34 Address Creation 40.8 Sign And Verify 76.2 SHA 146 Scrypt 107 AddressChain 62.1 AES 111 *made Nightly hang - on about:telemetry - Browser Hangs there is: Hang Report #1 (11 seconds) 0xffffffff 0xffffffff
Comment 7•10 years ago
|
||
Firefox 31 handily beats Chrome 35. Firefox 29 = 176 Beta 30 = 171 Aurora 31 = 264* Nightly 32 = 262* Chrome 35 = 184 Nightly 32: Address Creation 170 Sign And Verify 279 SHA 411 Scrypt 266 AddressChain 221 AES 231 Chrome 35: Address Creation 157 Sign And Verify 232 SHA 243 Scrypt 210 AddressChain 165 AES 199
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox29:
--- → affected
status-firefox30:
--- → affected
status-firefox31:
--- → fixed
status-firefox32:
--- → fixed
Keywords: perf
Resolution: --- → FIXED
Summary: FF slower than Chrome on BitcoinBench → Firefox slower than Chrome on BitcoinBench
Comment 8•10 years ago
|
||
awesome
Updated•10 years ago
|
Resolution: FIXED → WORKSFORME
Comment 9•10 years ago
|
||
jmaher, is this something you could use as a performance benchmark for Talos?
Flags: needinfo?(jmaher)
Keywords: verifyme
Comment 10•10 years ago
|
||
Thanks Lizz for pointing this out. I have filed bug 1040054 to investigate this. We are always working on our benchmarks and tests to make them more reliable and relevant.
Flags: needinfo?(jmaher)
You need to log in
before you can comment on or make changes to this bug.
Description
•