-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
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
Store Object signals in a HashMap rather than a VMap #72421
Conversation
Can you share benchmark results to assess the gain? |
Sure, with the caveat that these numbers are from a debug build Code:
Before: ( Using #72346 for consistent behavior, see that for details )
After: ( Note how scaling is now linear )
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally (rebased against latest master
), it works. I ran a few projects of mine without issue.
The only problem with this approach is that emission (which is more critical than connection time) could be slower. It would be nice to benchmark this in exchange. |
@myaaaaaaaaa Would you have time to do a quick test for this? |
Preliminary testing (with dev builds) seems to show that the difference is within the margin of error (1.8%) Code: https://github.com/godotengine/godot-benchmarks/pull/30/files {
"category": "Core > Signal",
"name": "Emission",
"results": {
"time": {
"a": 1934,
"b": 1969,
"a_div_b": 0.9822244794311833
}
}
} |
Thanks! |
Fixes #69874