-
Notifications
You must be signed in to change notification settings - Fork 21
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
Performance, consider inlining #30
Comments
Hi, at first I had no idea what you meant, but this surfaced just right now.. which modifications do you suggest? I don't get why it gets boxed.. |
Okay, so making i clear (sorry); All values like Its pretty simple, because e.g. Vec3t is using generics and has the "variable" I solved it (because I don't really use Vec3t) and renamed that property to Also there is the index getter ( I am not using stock glm anymore, because optimizing it myself without any review is quite nice. I am using my fork (https://gitlab.bixilon.de/bixilon/kotlin-glm). I also changed some other things to make memory allocation not that heavy anymore:
With all that changes, testing time (and that is mostly using String.substring, could be faster too, but not needed in praxis) got pretty much halfed and my game is running a lot faster as before and allocations are there down from 80MB/s to 5MB/s (along with other improvements ofc) (ah and fogot: not my intention to make a PR, that would be far too heavy (around 10k lines), just letting you know) |
Thanks for the nice valuable list: I'm gonna use that in the new multiplatform version, which uses code generation and make some of those things you listed incredible easy and fast to write If you would like to partecipate, don't hesitate. I can't keep up with all the things I'd like to implement in every library and in those I wish to write yet, so I'm leaning toward passive attitude, first accept and then review I can send you an invitation right away. Also, I'm more than happy to donate some money for valuable PRs |
That actually sounds really easy, I thought of that too, but was to lazy to create moritz-glm, I am ignoring most parts of glm, its simply "bloated" for my use.
haha, I know that situation.
Nice chance, thanks fot the chance, I'd love to take it, but I think this is not the right thing. I am not the one who regularly commits to other projects. Sadly. My focus is and was always my game. My fork contains everything I need, feel free to grab it (cherry picking won't work, too bad I changed the namespace), its published under the same license. Also I don't know how open you/the project is to backwards incompatible changes. I am. Shame on me.
Yes. that honors me even more, but when I started that whole thing with nothing in mind (at least regarding money) and in my readme (https://gitlab.bixilon.de/bixilon/minosoft/-/blob/master/Contributing.md?plain=1#L25) there might be the line: I am not completely saying no, but don't expect much from me coming soon. |
I'm not expecting regular commits at all, I know there are bursts and then silence, I'm like that :)
If it makes sense, then backward compatibility comes after in terms of priority. Imho, backward compatibility is what kept java so behind. I'll send you the invitation and if you have time and willness, you are more than welcome |
I gave a quick look, they look fine by me |
I started cherry picking in |
You should consider inlining all variables like
x
in classes likeVec4i
.That will prevent wrapping values in classes like Integer, calculations are then done directly with the primitive type
int
. This speeds up performance and reduces memory usage A LOT!The text was updated successfully, but these errors were encountered: