Closed Bug 1346974 Opened 3 years ago Closed 3 years ago

stylo: base URI handling for inline style sets is super-slow

Categories

(Core :: CSS Parsing and Computation, defect, P1)

defect

Tracking

()

RESOLVED FIXED
Tracking Status
firefox55 --- affected

People

(Reporter: bzbarsky, Assigned: xidorn)

References

Details

This is not going to be a surprise, but....

I redid a profile for the testcase from bug 1344131, now that we fixed the issues the first profile found.  The new time is 2.5x slower than the old time.

Most obviously, this is because we started passing in a base URI for this stuff.  On the new (2.5x slower) baseline, we have:

10% RefPtr<nsMainThreadPtrHolder<nsIURI> release/dtor -- there's free() under there, so you lose.

6% GeckoParserExtraData constructor, mostly doing malloc.

5% RefPtr<nsMainThreadPtrHolder<nsIPrincipal> >::~RefPtr() -- again, free().

26% url::ParseOptions::parse.  I'm not even going to look under there.

Anyway, all told that's 47%.  So fixing that will at least get us down to about where we used to be and then we can re-profile.

Bug 1343964 tracks that to some extent.
(In reply to Boris Zbarsky [:bz] (still a bit busy) (if a patch has no decent message, automatic r-) from comment #0)
> This is not going to be a surprise, but....
> 
> I redid a profile for the testcase from bug 1344131, now that we fixed the
> issues the first profile found.  The new time is 2.5x slower than the old
> time.
> 
> Most obviously, this is because we started passing in a base URI for this
> stuff.  On the new (2.5x slower) baseline, we have:
> 
> 10% RefPtr<nsMainThreadPtrHolder<nsIURI> release/dtor -- there's free()
> under there, so you lose.
> 
> 6% GeckoParserExtraData constructor, mostly doing malloc.
> 
> 5% RefPtr<nsMainThreadPtrHolder<nsIPrincipal> >::~RefPtr() -- again, free().
> 
> 26% url::ParseOptions::parse.  I'm not even going to look under there. 

This last bit should be fixed by my patches in bug 1347435.

> Anyway, all told that's 47%.  So fixing that will at least get us down to
> about where we used to be and then we can re-profile.
> 
> Bug 1343964 tracks that to some extent.

Yeah, I agree.
Assignee: nobody → xidorn+moz
Priority: -- → P1
Fixed by bug 1343964.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.