This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch update_benchmakr
in repository https://gitbox.apache.org/repos/asf/fory-site.git

commit 8d5907a23fe9d8996959103f7205742ff48bc438
Author: chaokunyang <[email protected]>
AuthorDate: Tue Oct 28 00:57:19 2025 +0800

    add rust benchmark
---
 blog/2025-10-27-fory_0_13_0_release.md | 39 +++++++++++++++++++++++++++++++---
 docs/docs/introduction/benchmark.md    | 14 +++++++++++-
 2 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/blog/2025-10-27-fory_0_13_0_release.md 
b/blog/2025-10-27-fory_0_13_0_release.md
index bab4a05e8..5a1e1f2ad 100644
--- a/blog/2025-10-27-fory_0_13_0_release.md
+++ b/blog/2025-10-27-fory_0_13_0_release.md
@@ -32,7 +32,7 @@ This is the first Apache Fory Rust release, delivering a 
complete, high‑perfor
 - Thread-safe and multi-thread capable serialization (context pool)
 - Broad collection support (e.g., `VecDeque`, `LinkedList`, `BTreeMap`, 
`BTreeSet`, `BinaryHeap`)
 
-Quick start (minimal example):
+### Quick start (minimal example):
 
 ```rust
 use fory::{Fory, Error};
@@ -61,6 +61,39 @@ fn main() -> Result<(), Error> {
 - Crate: fory on crates.io – https://crates.io/crates/fory
 - API docs: docs.rs – https://docs.rs/fory/latest/fory
 
+### Rust Benchmarks
+
+<img src="/img/benchmarks/rust/ecommerce_data.png" width="90%"/>
+<img src="/img/benchmarks/rust/system_data.png" width="90%"/>
+
+Below are serialize throughput results (TPS; higher is better) comparing Fory 
with JSON and Protobuf across multiple datasets and sizes.
+
+| Datatype       | Size   | Operation | Fory TPS   | JSON TPS   | Protobuf TPS 
| Fastest |
+| -------------- | ------ | --------- | ---------- | ---------- | ------------ 
| ------- |
+| company        | small  | serialize | 10,063,906 | 761,673    | 896,620      
| fory    |
+| company        | medium | serialize | 412,507    | 33,835     | 37,590       
| fory    |
+| company        | large  | serialize | 9,183      | 793        | 880          
| fory    |
+| ecommerce_data | small  | serialize | 2,350,729  | 206,262    | 256,970      
| fory    |
+| ecommerce_data | medium | serialize | 59,977     | 4,699      | 5,242        
| fory    |
+| ecommerce_data | large  | serialize | 3,727      | 266        | 295          
| fory    |
+| person         | small  | serialize | 13,632,522 | 1,345,189  | 1,475,035    
| fory    |
+| person         | medium | serialize | 3,839,656  | 337,610    | 369,031      
| fory    |
+| person         | large  | serialize | 907,853    | 79,631     | 91,408       
| fory    |
+| simple_list    | small  | serialize | 27,726,945 | 4,874,957  | 4,643,172    
| fory    |
+| simple_list    | medium | serialize | 4,770,765  | 401,558    | 397,551      
| fory    |
+| simple_list    | large  | serialize | 606,061    | 41,061     | 44,565       
| fory    |
+| simple_map     | small  | serialize | 22,862,369 | 3,888,025  | 2,695,999    
| fory    |
+| simple_map     | medium | serialize | 2,128,973  | 204,319    | 193,132      
| fory    |
+| simple_map     | large  | serialize | 177,847    | 18,419     | 18,668       
| fory    |
+| simple_struct  | small  | serialize | 35,729,598 | 10,167,045 | 8,633,342    
| fory    |
+| simple_struct  | medium | serialize | 34,988,279 | 9,737,098  | 6,433,350    
| fory    |
+| simple_struct  | large  | serialize | 31,801,558 | 4,545,041  | 7,420,049    
| fory    |
+| system_data    | small  | serialize | 5,382,131  | 468,033    | 569,930      
| fory    |
+| system_data    | medium | serialize | 174,240    | 11,896     | 14,753       
| fory    |
+| system_data    | large  | serialize | 10,671     | 876        | 1,040        
| fory    |
+
+Note: Results depend on hardware, dataset, and implementation versions. See 
the Rust guide for how to run benchmarks yourself: 
https://github.com/apache/fory/blob/main/rust/benches/README.md
+
 ## Python: Drop‑in Replacement for pickle
 
 `pyfory` now acts as a high‑performance drop‑in replacement for 
`pickle`/`cloudpickle`, while keeping the same simple API and adding security 
and performance features.
@@ -107,7 +140,7 @@ Read more: Python Guide – 
https://fory.apache.org/docs/latest/python_serializa
 - feat(Rust): support Option in MetaFieldType se/de by @urlyy in 
https://github.com/apache/fory/pull/2528
 - feat(rust): support skipping fields bytes when deserializing in compatible 
mode by @urlyy in https://github.com/apache/fory/pull/2545
 - feat(go): add type meta encoding for meta share by @junjiexh in 
https://github.com/apache/fory/pull/2554
-- feat(Rust): Support automatic conversion between T and Option<T> when 
deserialize by @urlyy in https://github.com/apache/fory/pull/2563
+- feat(Rust): Support automatic conversion between T and `Option<T>` when 
deserialize by @urlyy in https://github.com/apache/fory/pull/2563
 - feat(java): bean encoder implemented interfaces honor `@Ignore` by 
@stevenschlansker in https://github.com/apache/fory/pull/2576
 - refactor(java): refactor fory java exception hierarchical structure by 
@chaokunyang in https://github.com/apache/fory/pull/2577
 - feat(Go): Implement ahead of time codegen for fory-go serialization by 
@ThisingL in https://github.com/apache/fory/pull/2553
@@ -151,7 +184,7 @@ Read more: Python Guide – 
https://fory.apache.org/docs/latest/python_serializa
 - refactor(Rust): Refine api name by @urlyy in 
https://github.com/apache/fory/pull/2671
 - feat(rust): support rust dyn trait object serialization by @chaokunyang in 
https://github.com/apache/fory/pull/2691
 - feat(rust): support dyn any trait object serialization for box/arc/rc by 
@chaokunyang in https://github.com/apache/fory/pull/2704
-- feat(rust): support shared reference tracking for arc/rc<dny T> by 
@chaokunyang in https://github.com/apache/fory/pull/2707
+- feat(rust): support shared reference tracking for `arc/rc<dyn T>` by 
@chaokunyang in https://github.com/apache/fory/pull/2707
 - feat(rust): avoid downcast method of multiple trait objects in same module 
conflict by @chaokunyang in https://github.com/apache/fory/pull/2708
 - feat(rust): add deref to arc/rc wrapper by @chaokunyang in 
https://github.com/apache/fory/pull/2709
 - refactor(rust): unify rc/arc wrapper macro arms into one function by 
@chaokunyang in https://github.com/apache/fory/pull/2711
diff --git a/docs/docs/introduction/benchmark.md 
b/docs/docs/introduction/benchmark.md
index ba00a0fd0..192dfa9cc 100644
--- a/docs/docs/introduction/benchmark.md
+++ b/docs/docs/introduction/benchmark.md
@@ -12,6 +12,8 @@ Dynamic serialization frameworks supports polymorphism and 
reference, which has
 to static serialization frameworks, unless it uses the jit techniques as 
Apache Fory™ did.
 Since Apache Fory™ will generate code at runtime, please warm up before 
collecting benchmark statistics.
 
+## Java Benchmark
+
 ### Java Serialization
 
 <img width="33%" alt="" 
src="/img/benchmarks/serialization/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png"
 />
@@ -28,7 +30,17 @@ Since Apache Fory™ will generate code at runtime, please 
warm up before collec
 
 See [benchmarks](https://github.com/apache/fory/tree/main/docs/benchmarks) for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.
 
-### JavaScript
+## Rust Benchmark
+
+<img src="/img/benchmarks/rust/company.png" width="90%"/>
+
+<img src="/img/benchmarks/rust/ecommerce_data.png" width="90%"/>
+
+<img src="/img/benchmarks/rust/system_data.png" width="90%"/>
+
+Note: Results depend on hardware, dataset, and implementation versions. See 
the Rust guide for how to run benchmarks yourself: 
https://github.com/apache/fory/blob/main/rust/benches/README.md
+
+## JavaScript Benchmark
 
 <img width="33%" alt="" src="/img/benchmarks/javascript/complex_object.jpg" />
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to