-
Notifications
You must be signed in to change notification settings - Fork 476
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
Improve JSON Deserialization Performance #10
Comments
I noticed that buffer data gets copied to the buffer view objects, which get copied to the accessor objects. All the copying seems wasteful, wouldn't it make more sense to provide access to the original buffer via a function that maps the index space? So in lieu of |
Performance greatly improved via manual deserialization in db40b19 Previously we were using JSON.NET's JsonConvert.DeserializeObject which uses reflection to deserialize the provided object. I've moved everything to manual deserialization which removes all reflection and really speeds things up.
There's probably still a lot more room for performance improvements, but I'm feeling pretty good about our parsing performance now. |
Wow, that's some intense savings. Nicely done! |
Any idea why parsing here would be slower than JSON parsing in e.g. the browser? All three of the sample models above take ~3ms with |
Adds 'My models' filter in plugin
Merge in ARES/ares.unity_gltf from ARES-2466-magicleap to ares Squashed commit of the following: commit 0b1a5bd319ede365ac45e739a1106cda26239fc2 Author: Jason Schutz <jschutz@dignitastechnologies.com> Date: Mon Jun 21 14:19:28 2021 -0400 Update to latest Basic Library
Implement GetBufferData() in SetupBones Task.
Implement GetBufferData() in SetupBones Task.
Currently JSON deserialization is a bit slow and not concurrent. It blocks the renderer and causes dropped frames. I'd like to move it to another thread or at least make it concurrent. There's also likely a lot of room for improvement in overall parsing speed.
The text was updated successfully, but these errors were encountered: