GitHub user mchernyakov created a discussion: Java: maximum performance with
minimum overhead
Hello,
We’re evaluating Apache Fory as a replacement for Kryo in our distributed
system.
Performance with Fory’s autogenerated (JIT-optimized) serializers is excellent
— much faster than Kryo — but serialized payloads are 25–30% larger.
**Problem**
We operate across multiple availability zones, so network traffic volume is a
significant cost factor.
While Fory’s JIT serializers offer great CPU performance, the increased
payload size offsets some of the benefits.
**Observations**
We tried several approaches and the results are so far:
Setup | Performance | traffic volume
-- | -- | --
Kryo + custom serializers | Baseline | Baseline
Fory + autogenerated (JIT) | Fastest | +25–30% larger |
Fory + custom serializers | ≈ Kryo | Similar |
Fory + custom + Fory collections | Slightly faster | Similar |
Fory config
```java
private static ForyBuilder foryBuilder() {
return Fory.builder().withLanguage(Language.JAVA)
.withRefTracking(false)
.withCompatibleMode(CompatibleMode.SCHEMA_CONSISTENT)
.requireClassRegistration(true)
.withAsyncCompilation(true)
.withCodegen(true)
;
}
```
**Question**
Are there recommended configurations or strategies to:
Reduce payload sizes while keeping JIT/autogenerated serializers?
Use any hybrid approach combining Fory’s performance with Kryo-like compactness?
If we should go for the meta sharing approach how should that be handled
properly in multi-server env?
Thanks in advance.
GitHub link: https://github.com/apache/fory/discussions/2786
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]