Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use default storage for TemporaryRenderEntity #16462

Merged
merged 1 commit into from
Nov 22, 2024

Conversation

rparrett
Copy link
Contributor

@rparrett rparrett commented Nov 21, 2024

Objective

TemporaryRenderEntity currently uses SparseSet storage, but doesn't seem to fit the criteria for a component that would benefit from this.

Typical usage of TemporaryRenderEntity (and all current usages of it in engine as far as I can tell) would be to spawn an entity with it once and then iterate over it once to despawn that entity.

SparseSet is said to be useful for insert/removal perf at the cost of iteration perf.

Solution

Use the default table storage

Testing

Possibly this could show up in stress tests like many_buttons. I didn't do any benchmarking.

@alice-i-cecile alice-i-cecile added D-Trivial Nice and easy! A great choice to get started with Bevy A-Rendering Drawing game state to the screen C-Performance A change motivated by improving speed, memory usage or compile times C-Code-Quality A section of code that is hard to understand or change S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it labels Nov 21, 2024
Copy link
Member

@alice-i-cecile alice-i-cecile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the absence of benchmarking we should stick to the default choice. I also think it's the better one here.

@alice-i-cecile alice-i-cecile added this pull request to the merge queue Nov 22, 2024
@alice-i-cecile alice-i-cecile added this to the 0.15 milestone Nov 22, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to a conflict with the base branch Nov 22, 2024
@BenjaminBrienen
Copy link
Contributor

Is there a justification from the original author of this line? I don't have the tools to see which PR added it at this moment.

@rparrett
Copy link
Contributor Author

I couldn't find any discussion about it in either the original or adopted PR that introduced the code.

#14449
#15320

Digging a bit further, it was added in this particular commit 8d2c81a but I still don't see any relevant review or conversation.

@alice-i-cecile alice-i-cecile added this pull request to the merge queue Nov 22, 2024
Merged via the queue into bevyengine:main with commit 35de452 Nov 22, 2024
29 checks passed
mockersf pushed a commit that referenced this pull request Nov 22, 2024
# Objective

`TemporaryRenderEntity` currently uses `SparseSet` storage, but doesn't
seem to fit the criteria for a component that would benefit from this.

Typical usage of `TemporaryRenderEntity` (and all current usages of it
in engine as far as I can tell) would be to spawn an entity with it once
and then iterate over it once to despawn that entity.

`SparseSet` is said to be useful for insert/removal perf at the cost of
iteration perf.

## Solution

Use the default table storage

## Testing

Possibly this could show up in stress tests like `many_buttons`. I
didn't do any benchmarking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Rendering Drawing game state to the screen C-Code-Quality A section of code that is hard to understand or change C-Performance A change motivated by improving speed, memory usage or compile times D-Trivial Nice and easy! A great choice to get started with Bevy S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants