Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lists of ints serialization benchmarks #270

Merged
merged 15 commits into from
Feb 4, 2025

Conversation

rutkowskij
Copy link
Contributor

Observed Performance Degradation During Deserialization of Objects with Large Collections

I have observed a significant performance degradation when deserializing objects that contain large collections (lists). In my case, the deserialization time increased by nearly 3x 🧐
Interestingly, when deserializing previously created generic objects, the performance drop is not as noticeable. The most significant difference compared to the previous version is for objects serialized with version 2.1.1 and deserialized with version 2.1.1.
I added benchmarks on my local branch to measure the performance in version 1.10.1 and compared it to the current implementation (entries with name Avro4kV1*). I created a very simple model that contained just an Int list, and the performance drop was already noticeable.
I have added the results to the README for comparison. The remaining results (for v2) are comparable to those in the README on my machine, so I think I can include the results for reference.
Interestingly, there was a strange and intriguing result for JacksonAvro serialization (the fastests one). I’m not sure how to interpret it at this moment, but this effect does not seem to occur with more complex models than just an Int list.

@Chuckame
Copy link
Contributor

Chuckame commented Feb 3, 2025

can you rebase on main, which is now including the cleaning of benchmarks, and also the little optimisation of non-direct encoder/decoder ?

That way I'll be able to work improving performances without asking to you to update the results at each change 😅

…wrapper-performance

# Conflicts:
#	benchmark/README.md
#	benchmark/src/main/kotlin/com/github/avrokotlin/benchmark/ManualProfiling.kt
@rutkowskij
Copy link
Contributor Author

can you rebase on main, which is now including the cleaning of benchmarks, and also the little optimisation of non-direct encoder/decoder ?

That way I'll be able to work improving performances without asking to you to update the results at each change 😅

done

@Chuckame Chuckame changed the title Lists serialization benchmarks Lists of ints serialization benchmarks Feb 4, 2025
@Chuckame Chuckame merged commit 8b78af0 into avro-kotlin:main Feb 4, 2025
1 check passed
@rutkowskij rutkowskij deleted the listwrapper-performance branch February 4, 2025 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Observed performance degradation (vs 1.10.1) during deserialization of objects with large ints collections
2 participants