Closed amortemousque closed 3 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 93.65%. Comparing base (
b839f8c
) to head (28d38d9
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
📦 Bundle Name | Base Size | Local Size | 𝚫 | 𝚫% | Status |
---|---|---|---|---|---|
Rum | 159.49 KiB | 159.55 KiB | 62 B | +0.04% | ✅ |
Logs | 58.02 KiB | 58.02 KiB | 0 B | 0.00% | ✅ |
Rum Slim | 108.07 KiB | 108.07 KiB | 0 B | 0.00% | ✅ |
Worker | 25.21 KiB | 25.21 KiB | 0 B | 0.00% | ✅ |
Motivation
When recording for Session Replay, MutationRecord objects are batched together (see mutationBatch), then deduplicated on processing (ex: here).
When the same mutation happens continuously on the same element, for example with JS-driven animations, a lot of MutationRecords can be notified by the browser in a very short amount of time, which can significantly inflate the data sent to Datadog, and have a performance impact both on the recorder side and on the player side (see below). Those mutations could be deduplicated if they were batched together.
Changes
Batch the records for 16ms minimum before processing them
Testing
I have gone over the contributing documentation.