Closed
Bug 621203
Opened 15 years ago
Closed 12 years ago
IonMonkey: MD5 implementation slower than v8 and JSC
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
WORKSFORME
| Tracking | Status | |
|---|---|---|
| blocking2.0 | --- | .x+ |
People
(Reporter: bzbarsky, Unassigned)
References
Details
(Keywords: perf)
Attachments
(1 file, 1 obsolete file)
|
6.22 KB,
text/plain
|
Details |
If I run the attached shell testcase, I get these numbers:
-m: 967
-j: 466
-m -j: 1165
-m -j -p: 988
So -p is helping over just -m -j, but it'd be nice to stay on trace altogether here...
| Reporter | ||
Comment 1•15 years ago
|
||
So we end up blacklisting 3 loops:
line 11: maybeShortLoop
line 159: isCompilationExpensive is true for the nested loop with 0 ops
line 48: selfOps hit 4096
Line 48 is the main md5 computation loop. Line 159 is the driver loop.
It looks like isCompilationExpensive is still using >= for the "too branchy" check. I thought we changed that to use >...
If I make that change, then we no longer claim to blacklist the loop on line 48, but we don't claim to trace it either. I don't know what's going on there. The time remains about the same.
I also just realized, btw, that the testcase is somewhat broken. I'll post a fixed version, but all of the above analysis still applies.
| Reporter | ||
Comment 2•15 years ago
|
||
Requesting blocking, since this is a JM regression, btw.
blocking2.0: --- → ?
Keywords: regression
| Reporter | ||
Comment 3•15 years ago
|
||
Attachment #499556 -
Attachment is obsolete: true
| Reporter | ||
Comment 4•15 years ago
|
||
In the fixed testcase, there's more going on, but the key part is blacklisting the line 48 loop because it has too many self ops... But even if I bump the max op count to 16384 (in which case we're ok, because this thing only has about 6000 self ops), so that we decide to trace at line 48, I still see us being way slower with -m -j -p than with pure -j.... due to the fact that we blacklisted line 11 for being a maybe short loop and then didn't unblacklist it when we decided to trace the loop on 159. Then we end up aborting over and over on the main driver loop due to not having a compatible tree on 11.
Bill, you have a bunch of profiler changes pending landing, right? I suppose I should remeasure here once you land those....
(In reply to comment #4)
> Bill, you have a bunch of profiler changes pending landing, right? I suppose I
> should remeasure here once you land those....
Yeah, I want to get to that next week. I'll see how this bug fares after those land.
Assignee: general → wmccloskey
Status: NEW → ASSIGNED
Comment 6•15 years ago
|
||
I suggest that perf regressions should block at this point only if they affect a key benchmark or web site.
blocking2.0: ? → .x
Everything landed and this is still slow :-(. In fact, I see even worse numbers that Boris:
-m: 4863ms
-mj: 930ms
-mjp: 4613ms
Since it's not a blocker, I'm going to put this on hold.
| Reporter | ||
Comment 8•15 years ago
|
||
Assignee: wmccloskey → general
Comment 9•14 years ago
|
||
Current js shell results for the fixed testcase:
Interp: 73055
TM: 1949 (from 2011-10-01 nightly)
JM: 9565
JM+TI: 2803
d8: 4959
JM+TI is about 2x faster than v8. However, TM was about 1.4x faster than JM+TI. Changing the title to better reflect the current state of things.
Blocks: 467263
Status: ASSIGNED → NEW
Summary: MD5 implementation slower with -mjp than just with -j → JM+TI: MD5 implementation slower with -m -n than just with -j
Comment 10•13 years ago
|
||
Current numbers on my rMBP@2.7Ghz:
SM: 2216 (with no arguments)
JSC: 1776
d8: 875
So, we're quite a bit slower than the competition, now. Changing the title to better reflect the current state of things.
Summary: JM+TI: MD5 implementation slower with -m -n than just with -j → IonMonkey: MD5 implementation slower than v8 and JSC
Updated•12 years ago
|
Keywords: regression → perf
Comment 11•12 years ago
|
||
This is resoundingly fixed:
SM: 435
JSC: 1019
d8: 718
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•