Optimize Dynamic#get Missing Keys

get was calling toString() on every NBT object that was ever asked for an optional
key from the object to build a string for the error text.

When done on large NBT objects, this was using a ton of computation time building the
JSON representation of the NBT object.

Now we will just skip the value when 99.9999% of the time the text is never even printed.
This commit is contained in:
Aikar 2020-12-21 11:03:36 -05:00
parent abca14ff96
commit c83a661f6e
No known key found for this signature in database
GPG key ID: 401ADFC9891FAAFE
2 changed files with 35 additions and 0 deletions

View file

@ -108,6 +108,7 @@ importLibrary com.mojang authlib com/mojang/authlib yggdrasil/YggdrasilGameProfi
importLibrary com.mojang datafixerupper com/mojang/datafixers DataFixerBuilder.java
importLibrary com.mojang datafixerupper com/mojang/datafixers/util Either.java
importLibrary com.mojang datafixerupper com/mojang/serialization/codecs KeyDispatchCodec.java
importLibrary com.mojang datafixerupper com/mojang/serialization Dynamic.java
########################################################
########################################################