peacekeeper test case slower when traced successfully

RESOLVED DUPLICATE of bug 479110

Status

()

Core
JavaScript Engine
RESOLVED DUPLICATE of bug 479110
9 years ago
9 years ago

People

(Reporter: Robert Sayre, Assigned: gal)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Reporter)

Description

9 years ago
Created attachment 368710 [details]
peacekeeper.arrayCombined.js

The attachment on the tracemonkey branch is slower than mozilla-central.
(Reporter)

Comment 1

9 years ago
Created attachment 368711 [details]
Shark profile showing js_MonitorLoopEdge costs
(Reporter)

Comment 2

9 years ago
tracemonkey JIT:         8475 ops/sec
tracemonkey no-JIT:      9000 ops/sec
mozilla-central no-JIT:  9050 ops/sec
mozilla-central JIT:     10450 ops/sec
(Reporter)

Comment 3

9 years ago
Created attachment 368713 [details]
tracevis png
(Assignee)

Comment 4

9 years ago
Good testcase & analysis data. Thanks.
Assignee: general → gal
(Assignee)

Comment 5

9 years ago
Cause: massive side-exits. You can easily see this with TRACEMONKEY=stats in the shell:

recorder: started(5), aborted(3), completed(2), different header(0), trees trashed(0), slot promoted(0), unstable loop variable(0), breaks(0), returns(0), unstableInnerCalls(0)
monitor: triggered(121177), exits(121177), type mismatch(0), global mismatch(0)
(Assignee)

Comment 6

9 years ago
whale:src gal$ TRACEMONKEY=stats ./Darwin_DBG.OBJ/js -j x.js
benchmark.runTest Start running test.
benchmark Elapsed time 1077. Operations: 10000. Operations per second: 9285.051067780872
recorder: started(4), aborted(1), completed(4), different header(0), trees trashed(0), slot promoted(0), unstable loop variable(0), breaks(0), returns(0), unstableInnerCalls(0)
monitor: triggered(6), exits(6), type mismatch(0), global mismatch(0)

Yep, this is a dup (note: score is for a debug build here).
(Assignee)

Updated

9 years ago
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 479110
(Assignee)

Comment 8

9 years ago
OPT scores with mismatch patch applied:

benchmark.runTest Start running test.
benchmark Elapsed time 679. Operations: 10000. Operations per second: 14727.540500736375
whale:src gal$ ./Darwin_OPT.OBJ/js x.js
benchmark.runTest Start running test.
benchmark Elapsed time 1043. Operations: 10000. Operations per second: 9587.727708533079
whale:src gal$ 

The rest is array overhead in join.
You need to log in before you can comment on or make changes to this bug.