Open Bug 1599472 Opened 5 years ago Updated 3 years ago

Stream the output of inflate in nsHTTPCompressConv::OnDataAvailable out to another thread to be converted to UTF16 when possible

Categories

(Core :: DOM: Networking, enhancement, P3)

enhancement

Tracking

()

Performance Impact low

People

(Reporter: alexical, Unassigned)

References

Details

(Keywords: perf:pageload, Whiteboard: [necko-triaged])

See this profile of fetching a large json payload: https://perfht.ml/2rwfKSF (observed on http://queze.net/bhr/test/)

We spend almost 400ms in StreamTrans #131 in MOZ_Z_inflate, and then almost 400ms in the main thread in encoding_rs::utf_8::convert_utf8_to_utf16_up_to_invalid. It seems like these could be run concurrently, with the output of the first streaming into the latter.

This seems like a small problem for small payloads, but I suspect it might strongly affect web developers who build their own tools to, say, visualize data from large json payloads. (It should be noted that the page in question performs significantly better in Chrome)

I think DOM: Networking might actually be a more appropriate fit for this. Still not entirely sure.

Component: Networking → DOM: Networking
See Also: → 1599489

Could be related to bug 1505493.

Priority: -- → P3
Whiteboard: [qf] → [qf][necko-triaged]
Whiteboard: [qf][necko-triaged] → [qf:p3:pageload][necko-triaged]
Performance Impact: --- → P3
Keywords: perf:pageload
Whiteboard: [qf:p3:pageload][necko-triaged] → [necko-triaged]
Severity: normal → S3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.