Hey all!
Alongside many other exciting changes Unity 2019.3 also includes some large improvements to our text serialization backend.
What’s Changed?
Unity uses YAML as a text serialization format, up until 2019.3 we’ve been using an open source library called libYAML.
libYAML has served us well but for speed and maintainability reasons we’ve been working on a custom internal library called UnityYAML.
2019.3a1 brings about the full switch to this custom library.
Why does this mean for you?
In theory the switch should be completely transparent from a usability point of view.
From our internal testing the switch over to UnityYAML has resulted in a 30-40% speed up in scene loading times and a ~13% speed up when importing prefabs using text serialization.
You should see a speed up on the reading and writing of any text serialized documents, these are just some common examples.
We’d be very interested in hearing the improvements you see in your project from this change.
What should you look out for?
We’ve worked hard to test and QA this new improvement, but as always things may slip through the cracks.
Please file a bug report according to these instructions if you experience any of the following:
- Version control noise:
For example, a text serialized asset changing in a way where the data is the same, but simply moved around a bit due to the new writer.
We have done thorough testing for this, but it’s worth keeping an eye out.
- Data loss during serialization
We’ll be tracking new incoming bugs that we think could be related.
If you are creating your own YAML files
This has never been officially supported but If you’re currently externally creating YAML files then you might need to update your tooling to make sure the format is correct.
We also want to give you this forum thread as a place to voice any questions or ask about any related issues you’ve found.