UTF-8 encoding takes time. Many times, we don't even use strings that we parse (e.g. memo fields and similar). So PBJ may be wasting time encoding them when parsing objects.
The idea is to store strings as original byte[] objects in models and only perform the encoding if/when someone calls a getter on the model for the string. If the getter is never called, then we never need to waste cycles on the encoding.
A PoC of this change is available at #612
The task is to extract it, get it to the production level, and release the change.
UTF-8 encoding takes time. Many times, we don't even use strings that we parse (e.g. memo fields and similar). So PBJ may be wasting time encoding them when parsing objects.
The idea is to store strings as original
byte[]objects in models and only perform the encoding if/when someone calls a getter on the model for the string. If the getter is never called, then we never need to waste cycles on the encoding.A PoC of this change is available at #612
The task is to extract it, get it to the production level, and release the change.