Closed Bug 1536006 Opened 5 years ago Closed 5 years ago

Significant memory spike on aliexpress.com when moving cursor

Categories

(Core :: JavaScript Engine: JIT, defect, P1)

67 Branch
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox-esr60 --- wontfix
firefox65 --- wontfix
firefox66 --- wontfix
firefox67 --- wontfix
firefox68 --- wontfix

People

(Reporter: ke5trel, Assigned: tcampbell)

References

()

Details

(Keywords: memory-footprint, Whiteboard: [MemShrink:P1])

Attachments

(2 files)

Attached file memory-report.json.gz

STR:

  1. Go to https://www.aliexpress.com (homepage, search results or item listings).
  2. Move cursor in circles rapidly around page for several seconds until memory spikes.

Content process suddenly jumps +600MB for several seconds. Memory report shows spike occurs in jit-lazylink. Performance recording shows it is related to a mousemove event and involving JIT for the following:

https://assets.alicdn.com/g/secdev/nsv/1.0.58/ns_b_69_3_n.js

Not a recent regression, can be reproduced on 2017-08-01 build.

Attached file profile.json

For reference:

698.16 MB (100.0%) -- explicit
├──608.58 MB (87.17%) -- js-non-window
│  ├──603.59 MB (86.46%) -- runtime
│  │  ├──597.66 MB (85.60%) ── jit-lazylink
│  │  └────5.94 MB (00.85%) ++ (14 tiny)

Ted, it looks like you might know more about the jit-lazylink measurement.

Flags: needinfo?(tcampbell)
Whiteboard: [MemShrink] → [MemShrink:P1]

This case is pretty wild. The |jit-lazylink| category includes deferred IonBuilders and their associated data. In this case we have IonBuilder loop restarts blowing up.

This is the memory-space version of Bug 1375631. I'll take it in this cycle because it has dragged on long enough..

Assignee: nobody → tcampbell
Flags: needinfo?(tcampbell)
See Also: → 1375631
Status: NEW → ASSIGNED
Priority: -- → P1

Does this still repro with the latest Nightly? Bug 1382650 might have helped a bit, depending on how much inlining is going on.

(In reply to Jan de Mooij [:jandem] from comment #4)

Does this still repro with the latest Nightly? Bug 1382650 might have helped a bit, depending on how much inlining is going on.

Yes, I can still reproduce memory spikes of the same magnitude on latest Nightly 2019-03-31.

797.59 MB (100.0%) -- explicit
├──700.38 MB (87.81%) -- js-non-window
│  ├──695.11 MB (87.15%) -- runtime
│  │  ├──688.28 MB (86.29%) ── jit-lazylink
│  │  └────6.84 MB (00.86%) ++ (14 tiny)
Depends on: 1547721

This should be fixed in the next Nightly (bug 1547721).

IonBuilder still uses more memory than we would like (when I instrumented the MIR/LIR optimization passes it showed almost all of it is allocated by IonBuilder), but that bug addresses some of the worst-case issues like here.

I tested the previous 2019-04-28 build to make sure I could still reproduce it, then I tested the 2019-04-29 build and the memory spikes are gone.

Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: