Store Vector and Matrix objects as inline userdata - #5280
Open
MohabCodeX wants to merge 2 commits into
Open
Conversation
…heftauto#321) Store Vector2, Vector3, Vector4, and Matrix objects directly within Lua userdata memory instead of allocating wrapper objects on the C++ heap. - Removes heap allocation (new/delete) on vector and matrix instantiation. - Bypasses CIdArray lookups in argument parsers via direct type traits. - Eliminates __gc finalizer callback overhead during collection cycles. - Updates memory reporting to reflect actual struct sizes without artificial bias.
- Remove obsolete vector checks from lua_pushuserdata in LuaCommon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #321
Vectors and matrices are now stored directly inside Lua userdata memory buffers instead of allocating separate wrapper objects on the C++ heap.
Performance
+)238 ms~130-150 ms100,000C++ callbacks0(Normal bulk sweep)Verification and Test Plan