Investigate performance improvement in java MessagePack deserializer
Open
affected-very-few
area-signalr
enhancement
severity-minor
- Dominant language
- C#
- Stars
- 38.4k
- Forks
- 10.9k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 290
Description
In the below block, we effectively deserialize maps/arrays twice - first to find out how long they are, second to feed that number of bytes into `ObjectMapper.readValue`. We should investigate if its possible to pass the bytes in from their starting offset, and to find out after the fact how many bytes were read so we can advance the underlying buffer. Perhaps with a custom Reader that keeps track of how many bytes it has read?
https://github.com/dotnet/aspnetcore/blob/8522ba8e55a6fc4ebfcea57fe159905b080bb6a6/src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/MessagePackHubProtocol.java#L568-L610
Contributor guide
Assessment
This issue has not been assessed yet.