After some profiling, i came to the conclusion that current running logic is too complex, in order to support bytesRead, we have two Decoder type, the overhead of runGetIncremental is noticeable when the getter is small(around 100ns compare to cereal on my machine).
This gives binary a disadvantage in various benchmarks, since lots of benchmark just focus on a single combinator, the overhead of running it render this kind of benchmarks meaningless.
There're cases we do need running small getters, but i haven't really need bytesRead yet. So let's find a way to improve bytesRead, or remove it ?
After some profiling, i came to the conclusion that current running logic is too complex, in order to support
bytesRead, we have twoDecodertype, the overhead ofrunGetIncrementalis noticeable when the getter is small(around 100ns compare to cereal on my machine).This gives binary a disadvantage in various benchmarks, since lots of benchmark just focus on a single combinator, the overhead of running it render this kind of benchmarks meaningless.
There're cases we do need running small getters, but i haven't really need
bytesReadyet. So let's find a way to improvebytesRead, or remove it ?