If a meta string is less than 16 bytes, we skip write hashcode to reduce space cost. This will bring a big gain since most metastring-encoded ClassName/EnumName are less than 16 bytes . And package names are much less compared to classname, thus can save space by dict encoding sharing.
Does this PR introduce any user-facing change?
[ ] Does this PR introduce any public API change?
[ ] Does this PR introduce any binary protocol compatibility change?
What does this PR do?
If a meta string is less than 16 bytes, we skip write hashcode to reduce space cost. This will bring a big gain since most metastring-encoded ClassName/EnumName are less than 16 bytes . And package names are much less compared to classname, thus can save space by dict encoding sharing.
Does this PR introduce any user-facing change?
Benchmark