Skip to content

perf: remove redundant Enum.reverse in group/1#27

Open
filipecabaco wants to merge 1 commit intomainfrom
perf/remove-group-reverse
Open

perf: remove redundant Enum.reverse in group/1#27
filipecabaco wants to merge 1 commit intomainfrom
perf/remove-group-reverse

Conversation

@filipecabaco
Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

group/1 is called twice per topic per diff cycle (once for joins, once for leaves) across every tracked room. The Enum.reverse before the reduce was a full extra traversal with no semantic effect on the final result — meta ordering within a key is not part of the documented contract.

Removing it saves 7–15% of BEAM scheduler reductions per diff cycle, with the largest gains in the 2–5 users per room range. At production scale (10k–50k rooms), this compounds across both the joins and leaves passes on every diff event.

group/1 is called twice per topic per diff cycle (once for joins, once for leaves) across every tracked room. The Enum.reverse before the reduce was a full extra traversal with no semantic effect on the final result — meta ordering within a key is not part of the documented contract.

Removing it saves 7–15% of BEAM scheduler reductions per diff cycle, with the largest gains in the 2–5 users per room range. At production scale (10k–50k rooms), this compounds across both the joins and leaves passes on every diff event.
@leandrocp
Copy link
Copy Markdown

meta ordering within a key is not part of the documented contract

But I wonder if it will break anything or cause issues because some internal code requires the previous ordering.

@filipecabaco
Copy link
Copy Markdown
Member Author

all tests worked.... not sure honestly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants