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]

Reply via email to