This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory-site.git
The following commit(s) were added to refs/heads/main by this push:
new 6fc3a2c0e6 🔄 synced local 'docs/benchmarks/' with remote
'docs/benchmarks/'
6fc3a2c0e6 is described below
commit 6fc3a2c0e692092613165fa58c2ca9c76de8342f
Author: chaokunyang <[email protected]>
AuthorDate: Fri May 8 05:12:34 2026 +0000
🔄 synced local 'docs/benchmarks/' with remote 'docs/benchmarks/'
---
docs/benchmarks/cpp/README.md | 96 +++++++++----------
docs/benchmarks/cpp/mediacontent.png | Bin 52441 -> 50062 bytes
docs/benchmarks/cpp/mediacontentlist.png | Bin 57760 -> 56860 bytes
docs/benchmarks/cpp/sample.png | Bin 54468 -> 55396 bytes
docs/benchmarks/cpp/samplelist.png | Bin 53635 -> 54202 bytes
docs/benchmarks/cpp/struct.png | Bin 51954 -> 57826 bytes
docs/benchmarks/cpp/structlist.png | Bin 52960 -> 51789 bytes
docs/benchmarks/cpp/throughput.png | Bin 80164 -> 114387 bytes
docs/benchmarks/csharp/README.md | 96 +++++++++----------
docs/benchmarks/csharp/mediacontent.png | Bin 53148 -> 52348 bytes
docs/benchmarks/csharp/mediacontentlist.png | Bin 52044 -> 52715 bytes
docs/benchmarks/csharp/sample.png | Bin 51280 -> 51745 bytes
docs/benchmarks/csharp/samplelist.png | Bin 55993 -> 55395 bytes
docs/benchmarks/csharp/struct.png | Bin 53639 -> 58901 bytes
docs/benchmarks/csharp/structlist.png | Bin 47081 -> 51850 bytes
docs/benchmarks/csharp/throughput.png | Bin 77537 -> 111858 bytes
docs/benchmarks/dart/README.md | 56 +++++------
docs/benchmarks/dart/mediacontent.png | Bin 45286 -> 49785 bytes
docs/benchmarks/dart/mediacontentlist.png | Bin 47261 -> 51043 bytes
docs/benchmarks/dart/sample.png | Bin 35842 -> 40800 bytes
docs/benchmarks/dart/samplelist.png | Bin 45087 -> 52765 bytes
docs/benchmarks/dart/struct.png | Bin 37307 -> 34675 bytes
docs/benchmarks/dart/structlist.png | Bin 39438 -> 43743 bytes
docs/benchmarks/dart/throughput.png | Bin 81139 -> 102054 bytes
docs/benchmarks/go/README.md | 110 +++++++++++++---------
docs/benchmarks/go/benchmark_mediacontent.png | Bin 63179 -> 68637 bytes
docs/benchmarks/go/benchmark_mediacontentlist.png | Bin 75245 -> 72117 bytes
docs/benchmarks/go/benchmark_sample.png | Bin 64836 -> 61520 bytes
docs/benchmarks/go/benchmark_samplelist.png | Bin 70519 -> 73716 bytes
docs/benchmarks/go/benchmark_struct.png | Bin 65532 -> 63923 bytes
docs/benchmarks/go/benchmark_structlist.png | Bin 63835 -> 61736 bytes
docs/benchmarks/go/serialized_sizes.txt | 22 ++---
docs/benchmarks/go/throughput.png | Bin 0 -> 89753 bytes
docs/benchmarks/java/README.md | 36 ++++++-
docs/benchmarks/java/throughput.png | Bin 0 -> 112250 bytes
docs/benchmarks/javascript/README.md | 92 +++++++++---------
docs/benchmarks/javascript/mediacontent.png | Bin 55168 -> 54554 bytes
docs/benchmarks/javascript/mediacontentlist.png | Bin 56815 -> 54268 bytes
docs/benchmarks/javascript/sample.png | Bin 57185 -> 55343 bytes
docs/benchmarks/javascript/samplelist.png | Bin 57215 -> 56036 bytes
docs/benchmarks/javascript/struct.png | Bin 50777 -> 50042 bytes
docs/benchmarks/javascript/structlist.png | Bin 54735 -> 48116 bytes
docs/benchmarks/javascript/throughput.png | Bin 81947 -> 106283 bytes
docs/benchmarks/python/README.md | 94 +++++++++---------
docs/benchmarks/python/mediacontent.png | Bin 51723 -> 49225 bytes
docs/benchmarks/python/mediacontentlist.png | Bin 56440 -> 57029 bytes
docs/benchmarks/python/sample.png | Bin 47563 -> 54242 bytes
docs/benchmarks/python/samplelist.png | Bin 48300 -> 50755 bytes
docs/benchmarks/python/struct.png | Bin 53286 -> 59672 bytes
docs/benchmarks/python/structlist.png | Bin 50022 -> 49470 bytes
docs/benchmarks/python/throughput.png | Bin 74287 -> 108399 bytes
docs/benchmarks/rust/README.md | 84 ++++++++---------
docs/benchmarks/rust/mediacontent.png | Bin 54130 -> 55557 bytes
docs/benchmarks/rust/mediacontentlist.png | Bin 54154 -> 57391 bytes
docs/benchmarks/rust/sample.png | Bin 44641 -> 51923 bytes
docs/benchmarks/rust/samplelist.png | Bin 46992 -> 54937 bytes
docs/benchmarks/rust/struct.png | Bin 49558 -> 52616 bytes
docs/benchmarks/rust/structlist.png | Bin 45987 -> 50910 bytes
docs/benchmarks/rust/throughput.png | Bin 75422 -> 112113 bytes
docs/benchmarks/swift/README.md | 46 ++++-----
docs/benchmarks/swift/throughput.png | Bin 84759 -> 106898 bytes
61 files changed, 395 insertions(+), 337 deletions(-)
diff --git a/docs/benchmarks/cpp/README.md b/docs/benchmarks/cpp/README.md
index 0d7c25a602..156869e3e8 100644
--- a/docs/benchmarks/cpp/README.md
+++ b/docs/benchmarks/cpp/README.md
@@ -1,6 +1,6 @@
# C++ Benchmark Performance Report
-_Generated on 2026-04-29 21:16:35_
+_Generated on 2026-05-08 03:30:03_
## How to Generate This Report
@@ -21,7 +21,7 @@ python benchmark_report.py --json-file
build/benchmark_results.json --output-dir
| CPU Cores (Physical) | 12 |
| CPU Cores (Logical) | 12 |
| Total RAM (GB) | 48.0 |
-| Benchmark Date | 2026-04-29T21:15:49+08:00 |
+| Benchmark Date | 2026-05-08T03:29:26+08:00 |
| CPU Cores (from benchmark) | 12 |
## Benchmark Plots
@@ -32,73 +32,73 @@ All class-level plots below show throughput (ops/sec).

-### Struct
+### NumericStruct
-
+
### Sample

-### Mediacontent
+### MediaContent
-
+
-### Structlist
+### NumericStructList
-
+
-### Samplelist
+### SampleList
-
+
-### Mediacontentlist
+### MediaContentList
-
+
## Benchmark Results
### Timing Results (nanoseconds)
-| Datatype | Operation | fory (ns) | protobuf (ns) | msgpack (ns) |
Fastest |
-| ---------------- | ----------- | --------- | ------------- | ------------ |
------- |
-| Struct | Serialize | 25.6 | 34.3 | 54.3 |
fory |
-| Struct | Deserialize | 23.1 | 25.5 | 769.9 |
fory |
-| Sample | Serialize | 68.4 | 96.6 | 317.8 |
fory |
-| Sample | Deserialize | 326.2 | 662.5 | 2633.8 |
fory |
-| MediaContent | Serialize | 119.5 | 854.1 | 292.7 |
fory |
-| MediaContent | Deserialize | 391.2 | 1207.2 | 2809.7 |
fory |
-| StructList | Serialize | 72.6 | 421.4 | 286.4 |
fory |
-| StructList | Deserialize | 122.7 | 364.1 | 3400.5 |
fory |
-| SampleList | Serialize | 284.0 | 4898.1 | 1549.8 |
fory |
-| SampleList | Deserialize | 1824.8 | 5047.4 | 13206.2 |
fory |
-| MediaContentList | Serialize | 477.8 | 4788.9 | 1461.9 |
fory |
-| MediaContentList | Deserialize | 2053.4 | 6561.8 | 13702.4 |
fory |
+| Datatype | Operation | fory (ns) | protobuf (ns) | msgpack (ns) |
Fastest |
+| ----------------- | ----------- | --------- | ------------- | ------------ |
------- |
+| NumericStruct | Serialize | 23.6 | 48.9 | 81.8 |
fory |
+| NumericStruct | Deserialize | 25.7 | 32.4 | 1171.3 |
fory |
+| Sample | Serialize | 62.0 | 96.1 | 308.3 |
fory |
+| Sample | Deserialize | 329.1 | 678.9 | 2712.6 |
fory |
+| MediaContent | Serialize | 114.2 | 878.1 | 293.4 |
fory |
+| MediaContent | Deserialize | 417.4 | 1202.5 | 2748.2 |
fory |
+| NumericStructList | Serialize | 81.7 | 495.5 | 419.7 |
fory |
+| NumericStructList | Deserialize | 171.5 | 405.8 | 5309.0 |
fory |
+| SampleList | Serialize | 279.3 | 4992.3 | 1563.2 |
fory |
+| SampleList | Deserialize | 1784.6 | 5065.2 | 13040.9 |
fory |
+| MediaContentList | Serialize | 485.3 | 4798.9 | 1479.4 |
fory |
+| MediaContentList | Deserialize | 2235.5 | 6482.6 | 13797.8 |
fory |
### Throughput Results (ops/sec)
-| Datatype | Operation | fory TPS | protobuf TPS | msgpack TPS |
Fastest |
-| ---------------- | ----------- | ---------- | ------------ | ----------- |
------- |
-| Struct | Serialize | 39,028,134 | 29,190,083 | 18,400,879 |
fory |
-| Struct | Deserialize | 43,236,159 | 39,162,796 | 1,298,861 |
fory |
-| Sample | Serialize | 14,612,190 | 10,356,947 | 3,146,384 |
fory |
-| Sample | Deserialize | 3,065,887 | 1,509,472 | 379,673 |
fory |
-| MediaContent | Serialize | 8,364,768 | 1,170,804 | 3,416,327 |
fory |
-| MediaContent | Deserialize | 2,556,154 | 828,370 | 355,913 |
fory |
-| StructList | Serialize | 13,768,856 | 2,373,115 | 3,491,609 |
fory |
-| StructList | Deserialize | 8,149,855 | 2,746,704 | 294,075 |
fory |
-| SampleList | Serialize | 3,521,702 | 204,162 | 645,233 |
fory |
-| SampleList | Deserialize | 547,995 | 198,123 | 75,722 |
fory |
-| MediaContentList | Serialize | 2,092,938 | 208,817 | 684,050 |
fory |
-| MediaContentList | Deserialize | 486,993 | 152,398 | 72,980 |
fory |
+| Datatype | Operation | fory TPS | protobuf TPS | msgpack TPS |
Fastest |
+| ----------------- | ----------- | ---------- | ------------ | ----------- |
------- |
+| NumericStruct | Serialize | 42,340,747 | 20,456,013 | 12,223,421 |
fory |
+| NumericStruct | Deserialize | 38,921,757 | 30,876,920 | 853,731 |
fory |
+| Sample | Serialize | 16,120,239 | 10,402,361 | 3,243,915 |
fory |
+| Sample | Deserialize | 3,038,551 | 1,473,035 | 368,652 |
fory |
+| MediaContent | Serialize | 8,760,221 | 1,138,812 | 3,408,303 |
fory |
+| MediaContent | Deserialize | 2,395,697 | 831,626 | 363,876 |
fory |
+| NumericStructList | Serialize | 12,246,425 | 2,018,049 | 2,382,679 |
fory |
+| NumericStructList | Deserialize | 5,829,352 | 2,464,295 | 188,358 |
fory |
+| SampleList | Serialize | 3,579,741 | 200,307 | 639,695 |
fory |
+| SampleList | Deserialize | 560,346 | 197,425 | 76,682 |
fory |
+| MediaContentList | Serialize | 2,060,531 | 208,381 | 675,956 |
fory |
+| MediaContentList | Deserialize | 447,319 | 154,259 | 72,475 |
fory |
### Serialized Data Sizes (bytes)
-| Datatype | fory | protobuf | msgpack |
-| ---------------- | ---- | -------- | ------- |
-| Struct | 58 | 61 | 55 |
-| Sample | 446 | 375 | 530 |
-| MediaContent | 365 | 301 | 480 |
-| StructList | 184 | 315 | 289 |
-| SampleList | 1980 | 1890 | 2664 |
-| MediaContentList | 1535 | 1520 | 2421 |
+| Datatype | fory | protobuf | msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct | 78 | 93 | 87 |
+| Sample | 445 | 375 | 530 |
+| MediaContent | 362 | 301 | 480 |
+| NumericStructList | 255 | 475 | 449 |
+| SampleList | 1978 | 1890 | 2664 |
+| MediaContentList | 1531 | 1520 | 2421 |
diff --git a/docs/benchmarks/cpp/mediacontent.png
b/docs/benchmarks/cpp/mediacontent.png
index 6cb9660855..5ed5ba3ffc 100644
Binary files a/docs/benchmarks/cpp/mediacontent.png and
b/docs/benchmarks/cpp/mediacontent.png differ
diff --git a/docs/benchmarks/cpp/mediacontentlist.png
b/docs/benchmarks/cpp/mediacontentlist.png
index 267ff574f5..f3a6b47ef1 100644
Binary files a/docs/benchmarks/cpp/mediacontentlist.png and
b/docs/benchmarks/cpp/mediacontentlist.png differ
diff --git a/docs/benchmarks/cpp/sample.png b/docs/benchmarks/cpp/sample.png
index bb25b54337..4d8290abbd 100644
Binary files a/docs/benchmarks/cpp/sample.png and
b/docs/benchmarks/cpp/sample.png differ
diff --git a/docs/benchmarks/cpp/samplelist.png
b/docs/benchmarks/cpp/samplelist.png
index bdaa4f05d1..3161372328 100644
Binary files a/docs/benchmarks/cpp/samplelist.png and
b/docs/benchmarks/cpp/samplelist.png differ
diff --git a/docs/benchmarks/cpp/struct.png b/docs/benchmarks/cpp/struct.png
index 398ab52f80..81d8b838c8 100644
Binary files a/docs/benchmarks/cpp/struct.png and
b/docs/benchmarks/cpp/struct.png differ
diff --git a/docs/benchmarks/cpp/structlist.png
b/docs/benchmarks/cpp/structlist.png
index 47c5f680f0..1e25666a8e 100644
Binary files a/docs/benchmarks/cpp/structlist.png and
b/docs/benchmarks/cpp/structlist.png differ
diff --git a/docs/benchmarks/cpp/throughput.png
b/docs/benchmarks/cpp/throughput.png
index 525f58ff72..ac557797b8 100644
Binary files a/docs/benchmarks/cpp/throughput.png and
b/docs/benchmarks/cpp/throughput.png differ
diff --git a/docs/benchmarks/csharp/README.md b/docs/benchmarks/csharp/README.md
index f7745bf047..62a8756055 100644
--- a/docs/benchmarks/csharp/README.md
+++ b/docs/benchmarks/csharp/README.md
@@ -1,6 +1,6 @@
# C# Benchmark Performance Report
-_Generated on 2026-03-11 02:14:01_
+_Generated on 2026-05-08 03:33:12_
## How to Generate This Report
@@ -18,7 +18,7 @@ python3 benchmark_report.py --json-file
build/benchmark_results.json --output-di
| OS Architecture | Arm64
|
| Machine | Arm64
|
| Runtime Version | 8.0.24
|
-| Benchmark Date (UTC) | 2026-03-10T18:14:00.0852460Z
|
+| Benchmark Date (UTC) | 2026-05-07T19:33:11.3470280Z
|
| Warmup Seconds | 1
|
| Duration Seconds | 3
|
| CPU Logical Cores (from benchmark) | 12
|
@@ -43,73 +43,73 @@ All class-level plots below show throughput (ops/sec).

-### Mediacontent
+### MediaContent
-
+
-### Mediacontentlist
+### MediaContentList
-
+
### Sample

-### Samplelist
+### SampleList
-
+
-### Struct
+### NumericStruct
-
+
-### Structlist
+### NumericStructList
-
+
## Benchmark Results
### Timing Results (nanoseconds)
-| Datatype | Operation | fory (ns) | protobuf (ns) | msgpack (ns) |
Fastest |
-| ---------------- | ----------- | --------- | ------------- | ------------ |
------- |
-| Struct | Serialize | 39.2 | 121.5 | 66.0 |
fory |
-| Struct | Deserialize | 58.3 | 180.1 | 102.6 |
fory |
-| Sample | Serialize | 269.2 | 562.6 | 339.6 |
fory |
-| Sample | Deserialize | 175.6 | 1084.9 | 531.8 |
fory |
-| MediaContent | Serialize | 306.3 | 434.7 | 351.5 |
fory |
-| MediaContent | Deserialize | 379.4 | 718.8 | 676.9 |
fory |
-| StructList | Serialize | 136.1 | 468.5 | 266.9 |
fory |
-| StructList | Deserialize | 221.1 | 687.0 | 488.5 |
fory |
-| SampleList | Serialize | 1198.9 | 2811.9 | 1635.7 |
fory |
-| SampleList | Deserialize | 791.5 | 5174.5 | 2629.2 |
fory |
-| MediaContentList | Serialize | 1393.9 | 2199.4 | 1710.9 |
fory |
-| MediaContentList | Deserialize | 1719.5 | 3373.1 | 3401.2 |
fory |
+| Datatype | Operation | fory (ns) | protobuf (ns) | msgpack (ns) |
Fastest |
+| ----------------- | ----------- | --------- | ------------- | ------------ |
------- |
+| NumericStruct | Serialize | 48.1 | 153.4 | 101.8 |
fory |
+| NumericStruct | Deserialize | 66.6 | 230.5 | 139.2 |
fory |
+| Sample | Serialize | 264.2 | 587.4 | 357.5 |
fory |
+| Sample | Deserialize | 173.4 | 1117.6 | 535.4 |
fory |
+| MediaContent | Serialize | 318.4 | 460.0 | 358.7 |
fory |
+| MediaContent | Deserialize | 416.4 | 765.3 | 702.2 |
fory |
+| NumericStructList | Serialize | 177.8 | 627.9 | 418.7 |
fory |
+| NumericStructList | Deserialize | 276.6 | 921.6 | 673.6 |
fory |
+| SampleList | Serialize | 1223.2 | 2864.3 | 1733.2 |
fory |
+| SampleList | Deserialize | 811.7 | 5398.9 | 2663.9 |
fory |
+| MediaContentList | Serialize | 1464.7 | 2264.3 | 1757.8 |
fory |
+| MediaContentList | Deserialize | 1805.5 | 3604.5 | 3485.5 |
fory |
### Throughput Results (ops/sec)
-| Datatype | Operation | fory TPS | protobuf TPS | msgpack TPS |
Fastest |
-| ---------------- | ----------- | ---------- | ------------ | ----------- |
------- |
-| Struct | Serialize | 25,535,535 | 8,233,006 | 15,153,903 |
fory |
-| Struct | Deserialize | 17,164,793 | 5,553,220 | 9,745,096 |
fory |
-| Sample | Serialize | 3,715,302 | 1,777,405 | 2,944,981 |
fory |
-| Sample | Deserialize | 5,696,108 | 921,760 | 1,880,420 |
fory |
-| MediaContent | Serialize | 3,264,890 | 2,300,297 | 2,845,038 |
fory |
-| MediaContent | Deserialize | 2,635,449 | 1,391,138 | 1,477,346 |
fory |
-| StructList | Serialize | 7,347,503 | 2,134,576 | 3,746,866 |
fory |
-| StructList | Deserialize | 4,522,114 | 1,455,557 | 2,046,988 |
fory |
-| SampleList | Serialize | 834,086 | 355,633 | 611,365 |
fory |
-| SampleList | Deserialize | 1,263,450 | 193,254 | 380,338 |
fory |
-| MediaContentList | Serialize | 717,408 | 454,670 | 584,497 |
fory |
-| MediaContentList | Deserialize | 581,554 | 296,459 | 294,015 |
fory |
+| Datatype | Operation | fory TPS | protobuf TPS | msgpack TPS |
Fastest |
+| ----------------- | ----------- | ---------- | ------------ | ----------- |
------- |
+| NumericStruct | Serialize | 20,789,902 | 6,517,124 | 9,824,350 |
fory |
+| NumericStruct | Deserialize | 15,012,843 | 4,337,643 | 7,182,355 |
fory |
+| Sample | Serialize | 3,785,458 | 1,702,392 | 2,797,102 |
fory |
+| Sample | Deserialize | 5,765,682 | 894,796 | 1,867,599 |
fory |
+| MediaContent | Serialize | 3,141,058 | 2,173,936 | 2,787,836 |
fory |
+| MediaContent | Deserialize | 2,401,552 | 1,306,689 | 1,424,121 |
fory |
+| NumericStructList | Serialize | 5,625,375 | 1,592,535 | 2,388,188 |
fory |
+| NumericStructList | Deserialize | 3,615,288 | 1,085,025 | 1,484,484 |
fory |
+| SampleList | Serialize | 817,528 | 349,125 | 576,972 |
fory |
+| SampleList | Deserialize | 1,231,958 | 185,223 | 375,385 |
fory |
+| MediaContentList | Serialize | 682,734 | 441,639 | 568,884 |
fory |
+| MediaContentList | Deserialize | 553,871 | 277,432 | 286,900 |
fory |
### Serialized Data Sizes (bytes)
-| Datatype | fory | protobuf | msgpack |
-| ---------------- | ---- | -------- | ------- |
-| Struct | 58 | 61 | 55 |
-| Sample | 446 | 460 | 562 |
-| MediaContent | 365 | 307 | 479 |
-| StructList | 184 | 315 | 284 |
-| SampleList | 1980 | 2315 | 2819 |
-| MediaContentList | 1535 | 1550 | 2404 |
+| Datatype | fory | protobuf | msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct | 78 | 93 | 87 |
+| Sample | 445 | 460 | 562 |
+| MediaContent | 362 | 307 | 479 |
+| NumericStructList | 255 | 475 | 444 |
+| SampleList | 1978 | 2315 | 2819 |
+| MediaContentList | 1531 | 1550 | 2404 |
diff --git a/docs/benchmarks/csharp/mediacontent.png
b/docs/benchmarks/csharp/mediacontent.png
index 052229ba82..04ecbc2f0c 100644
Binary files a/docs/benchmarks/csharp/mediacontent.png and
b/docs/benchmarks/csharp/mediacontent.png differ
diff --git a/docs/benchmarks/csharp/mediacontentlist.png
b/docs/benchmarks/csharp/mediacontentlist.png
index 81854b8761..5f106c6295 100644
Binary files a/docs/benchmarks/csharp/mediacontentlist.png and
b/docs/benchmarks/csharp/mediacontentlist.png differ
diff --git a/docs/benchmarks/csharp/sample.png
b/docs/benchmarks/csharp/sample.png
index 77ccabc0c3..18ce39c5cb 100644
Binary files a/docs/benchmarks/csharp/sample.png and
b/docs/benchmarks/csharp/sample.png differ
diff --git a/docs/benchmarks/csharp/samplelist.png
b/docs/benchmarks/csharp/samplelist.png
index 93a9c50185..9adb52a37f 100644
Binary files a/docs/benchmarks/csharp/samplelist.png and
b/docs/benchmarks/csharp/samplelist.png differ
diff --git a/docs/benchmarks/csharp/struct.png
b/docs/benchmarks/csharp/struct.png
index 39e32751bc..6d1a2a1ac2 100644
Binary files a/docs/benchmarks/csharp/struct.png and
b/docs/benchmarks/csharp/struct.png differ
diff --git a/docs/benchmarks/csharp/structlist.png
b/docs/benchmarks/csharp/structlist.png
index 7925593370..137a868acf 100644
Binary files a/docs/benchmarks/csharp/structlist.png and
b/docs/benchmarks/csharp/structlist.png differ
diff --git a/docs/benchmarks/csharp/throughput.png
b/docs/benchmarks/csharp/throughput.png
index 77b696c9b4..00b97d0984 100644
Binary files a/docs/benchmarks/csharp/throughput.png and
b/docs/benchmarks/csharp/throughput.png differ
diff --git a/docs/benchmarks/dart/README.md b/docs/benchmarks/dart/README.md
index f1bbf98a22..47773d2f86 100644
--- a/docs/benchmarks/dart/README.md
+++ b/docs/benchmarks/dart/README.md
@@ -1,12 +1,12 @@
# Fory Dart Benchmark
-This benchmark compares serialization and deserialization throughput for
Apache Fory and Protocol Buffers in Dart.
+This benchmark compares serialization and deserialization throughput for
Apache Fory, Protocol Buffers, and JSON in Dart.
## Hardware and Runtime Info
| Key | Value
|
| --------------------- |
----------------------------------------------------------------- |
-| Timestamp | 2026-05-07T09:12:52.301869Z
|
+| Timestamp | 2026-05-07T19:42:18.589207Z
|
| OS | Version 15.7.2 (Build 24G325)
|
| Host | MacBook-Pro.local
|
| CPU Cores (Logical) | 12
|
@@ -20,37 +20,37 @@ This benchmark compares serialization and deserialization
throughput for Apache

-| Datatype | Operation | Fory TPS | Protobuf TPS | Fastest |
-| ---------------- | ----------- | ---------: | -----------: | ------------- |
-| Struct | Serialize | 9,631,226 | 2,134,738 | fory (4.51x) |
-| Struct | Deserialize | 10,449,715 | 4,968,658 | fory (2.10x) |
-| Sample | Serialize | 2,468,767 | 536,410 | fory (4.60x) |
-| Sample | Deserialize | 2,393,903 | 901,767 | fory (2.65x) |
-| MediaContent | Serialize | 1,162,191 | 431,591 | fory (2.69x) |
-| MediaContent | Deserialize | 2,005,785 | 767,396 | fory (2.61x) |
-| StructList | Serialize | 2,851,755 | 374,020 | fory (7.62x) |
-| StructList | Deserialize | 3,768,194 | 740,750 | fory (5.09x) |
-| SampleList | Serialize | 568,405 | 48,603 | fory (11.69x) |
-| SampleList | Deserialize | 546,914 | 111,151 | fory (4.92x) |
-| MediaContentList | Serialize | 270,092 | 83,028 | fory (3.25x) |
-| MediaContentList | Deserialize | 454,291 | 149,294 | fory (3.04x) |
+| Datatype | Operation | Fory TPS | Protobuf TPS | JSON TPS |
Fastest |
+| ----------------- | ----------- | --------: | -----------: | --------: |
------------- |
+| NumericStruct | Serialize | 9,315,764 | 1,609,183 | 768,972 |
fory (5.79x) |
+| NumericStruct | Deserialize | 9,239,326 | 3,304,725 | 1,392,396 |
fory (2.80x) |
+| Sample | Serialize | 2,513,144 | 553,880 | 137,741 |
fory (4.54x) |
+| Sample | Deserialize | 2,394,927 | 930,969 | 242,522 |
fory (2.57x) |
+| MediaContent | Serialize | 1,193,789 | 432,224 | 232,731 |
fory (2.76x) |
+| MediaContent | Deserialize | 2,015,704 | 774,578 | 252,242 |
fory (2.60x) |
+| NumericStructList | Serialize | 2,565,386 | 292,207 | 144,065 |
fory (8.78x) |
+| NumericStructList | Deserialize | 3,079,355 | 542,152 | 268,213 |
fory (5.68x) |
+| SampleList | Serialize | 587,773 | 50,180 | 26,101 |
fory (11.71x) |
+| SampleList | Deserialize | 532,619 | 111,270 | 48,355 |
fory (4.79x) |
+| MediaContentList | Serialize | 275,271 | 81,587 | 43,376 |
fory (3.37x) |
+| MediaContentList | Deserialize | 459,335 | 150,838 | 50,792 |
fory (3.05x) |
## Serialized Size (bytes)
-| Datatype | Fory | Protobuf |
-| ---------------- | ---: | -------: |
-| Struct | 57 | 61 |
-| Sample | 445 | 377 |
-| MediaContent | 362 | 307 |
-| StructList | 182 | 315 |
-| SampleList | 1978 | 1900 |
-| MediaContentList | 1531 | 1550 |
+| Datatype | Fory | Protobuf | JSON |
+| ----------------- | ---: | -------: | ---: |
+| NumericStruct | 78 | 93 | 159 |
+| Sample | 445 | 377 | 791 |
+| MediaContent | 362 | 307 | 619 |
+| NumericStructList | 255 | 475 | 816 |
+| SampleList | 1978 | 1900 | 3976 |
+| MediaContentList | 1531 | 1550 | 3122 |
## Per-workload Plots
-### Struct
+### NumericStruct
-
+
### Sample
@@ -60,9 +60,9 @@ This benchmark compares serialization and deserialization
throughput for Apache

-### StructList
+### NumericStructList
-
+
### SampleList
diff --git a/docs/benchmarks/dart/mediacontent.png
b/docs/benchmarks/dart/mediacontent.png
index 9538800879..55740b867e 100644
Binary files a/docs/benchmarks/dart/mediacontent.png and
b/docs/benchmarks/dart/mediacontent.png differ
diff --git a/docs/benchmarks/dart/mediacontentlist.png
b/docs/benchmarks/dart/mediacontentlist.png
index b76bf70b4d..74f0952dfd 100644
Binary files a/docs/benchmarks/dart/mediacontentlist.png and
b/docs/benchmarks/dart/mediacontentlist.png differ
diff --git a/docs/benchmarks/dart/sample.png b/docs/benchmarks/dart/sample.png
index fcdc6bd1c5..442cec5fff 100644
Binary files a/docs/benchmarks/dart/sample.png and
b/docs/benchmarks/dart/sample.png differ
diff --git a/docs/benchmarks/dart/samplelist.png
b/docs/benchmarks/dart/samplelist.png
index c9d11d8753..874c8e6427 100644
Binary files a/docs/benchmarks/dart/samplelist.png and
b/docs/benchmarks/dart/samplelist.png differ
diff --git a/docs/benchmarks/dart/struct.png b/docs/benchmarks/dart/struct.png
index 33b586d44f..c2765ca99a 100644
Binary files a/docs/benchmarks/dart/struct.png and
b/docs/benchmarks/dart/struct.png differ
diff --git a/docs/benchmarks/dart/structlist.png
b/docs/benchmarks/dart/structlist.png
index 7d4710a59b..8e74ba111c 100644
Binary files a/docs/benchmarks/dart/structlist.png and
b/docs/benchmarks/dart/structlist.png differ
diff --git a/docs/benchmarks/dart/throughput.png
b/docs/benchmarks/dart/throughput.png
index bdc34219d3..58abab8da0 100644
Binary files a/docs/benchmarks/dart/throughput.png and
b/docs/benchmarks/dart/throughput.png differ
diff --git a/docs/benchmarks/go/README.md b/docs/benchmarks/go/README.md
index 7195fe88d5..7403afbd0b 100644
--- a/docs/benchmarks/go/README.md
+++ b/docs/benchmarks/go/README.md
@@ -1,58 +1,84 @@
# Go Serialization Benchmark Report
-Generated: 2026-02-06 11:26:58
+Generated: 2026-05-08 03:21:36
## System Information
- **OS**: Darwin 24.6.0
- **Architecture**: arm64
-- **Python**: 3.10.8
-
-## Performance Charts
-
-
+- **Python**: 3.9.6
## Performance Summary
-| Data Type | Operation | Fory (ops/s) | Protobuf (ops/s) | Msgpack
(ops/s) | Fory vs PB | Fory vs MP |
-| ---------------- | ----------- | ------------ | ---------------- |
--------------- | ---------- | ---------- |
-| Struct | Serialize | 15.16M | 10.23M | 5.41M
| 1.48x | 2.80x |
-| Struct | Deserialize | 12.10M | 11.01M | 3.23M
| 1.10x | 3.75x |
-| Structlist | Serialize | 1.58M | 561K | 299K
| 2.82x | 5.28x |
-| Structlist | Deserialize | 1.10M | 529K | 175K
| 2.09x | 6.30x |
-| Sample | Serialize | 7.28M | 2.72M | 670K
| 2.68x | 10.87x |
-| Sample | Deserialize | 3.79M | 2.37M | 376K
| 1.60x | 10.09x |
-| Samplelist | Serialize | 510K | 141K | 38K
| 3.61x | 13.34x |
-| Samplelist | Deserialize | 236K | 107K | 19K
| 2.20x | 12.66x |
-| Mediacontent | Serialize | 3.72M | 2.12M | 1.29M
| 1.75x | 2.88x |
-| Mediacontent | Deserialize | 2.34M | 1.81M | 698K
| 1.30x | 3.35x |
-| Mediacontentlist | Serialize | 268K | 110K | 72K
| 2.44x | 3.72x |
-| Mediacontentlist | Deserialize | 138K | 87K | 36K
| 1.58x | 3.86x |
+| Data Type | Operation | Fory (ops/s) | Protobuf (ops/s) | Msgpack
(ops/s) | Fory vs PB | Fory vs MP |
+| ----------------- | ----------- | ------------ | ---------------- |
--------------- | ---------- | ---------- |
+| NumericStruct | Serialize | 12.58M | 6.96M | 3.66M
| 1.81x | 3.43x |
+| NumericStruct | Deserialize | 10.60M | 8.15M | 1.99M
| 1.30x | 5.32x |
+| Sample | Serialize | 7.09M | 2.55M | 640K
| 2.78x | 11.08x |
+| Sample | Deserialize | 3.44M | 2.16M | 346K
| 1.59x | 9.93x |
+| MediaContent | Serialize | 3.83M | 1.90M | 1.14M
| 2.02x | 3.36x |
+| MediaContent | Deserialize | 2.10M | 1.61M | 661K
| 1.30x | 3.18x |
+| NumericStructList | Serialize | 1.07M | 376K | 205K
| 2.86x | 5.23x |
+| NumericStructList | Deserialize | 1.10M | 374K | 102K
| 2.94x | 10.74x |
+| SampleList | Serialize | 505K | 130K | 37K
| 3.88x | 13.73x |
+| SampleList | Deserialize | 212K | 101K | 17K
| 2.10x | 12.40x |
+| MediaContentList | Serialize | 260K | 98K | 65K
| 2.66x | 3.97x |
+| MediaContentList | Deserialize | 124K | 80K | 33K
| 1.56x | 3.82x |
## Detailed Timing (ns/op)
-| Data Type | Operation | Fory | Protobuf | Msgpack |
-| ---------------- | ----------- | ------ | -------- | ------- |
-| Struct | Serialize | 66.0 | 97.8 | 184.9 |
-| Struct | Deserialize | 82.7 | 90.9 | 309.6 |
-| Structlist | Serialize | 632.8 | 1783.0 | 3340.0 |
-| Structlist | Deserialize | 906.4 | 1891.0 | 5709.0 |
-| Sample | Serialize | 137.3 | 367.3 | 1492.0 |
-| Sample | Deserialize | 263.6 | 422.2 | 2661.0 |
-| Samplelist | Serialize | 1962.0 | 7087.0 | 26169.0 |
-| Samplelist | Deserialize | 4234.0 | 9321.0 | 53615.0 |
-| Mediacontent | Serialize | 268.8 | 471.1 | 773.7 |
-| Mediacontent | Deserialize | 426.9 | 553.1 | 1432.0 |
-| Mediacontentlist | Serialize | 3736.0 | 9107.0 | 13911.0 |
-| Mediacontentlist | Deserialize | 7247.0 | 11435.0 | 27975.0 |
+| Data Type | Operation | Fory | Protobuf | Msgpack |
+| ----------------- | ----------- | ------ | -------- | ------- |
+| NumericStruct | Serialize | 79.5 | 143.7 | 273.0 |
+| NumericStruct | Deserialize | 94.3 | 122.7 | 501.7 |
+| Sample | Serialize | 141.0 | 391.7 | 1562.0 |
+| Sample | Deserialize | 290.6 | 462.2 | 2887.0 |
+| MediaContent | Serialize | 261.1 | 526.8 | 876.5 |
+| MediaContent | Deserialize | 476.0 | 619.4 | 1513.0 |
+| NumericStructList | Serialize | 930.6 | 2661.0 | 4868.0 |
+| NumericStructList | Deserialize | 909.3 | 2675.0 | 9767.0 |
+| SampleList | Serialize | 1979.0 | 7671.0 | 27168.0 |
+| SampleList | Deserialize | 4709.0 | 9893.0 | 58414.0 |
+| MediaContentList | Serialize | 3846.0 | 10212.0 | 15272.0 |
+| MediaContentList | Deserialize | 8055.0 | 12552.0 | 30730.0 |
### Serialized Data Sizes (bytes)
-| Data Type | Fory | Protobuf | Msgpack |
-| ---------------- | ---- | -------- | ------- |
-| Struct | 58 | 61 | 57 |
-| Sample | 446 | 375 | 524 |
-| MediaContent | 342 | 301 | 400 |
-| StructList | 560 | 1260 | 1146 |
-| SampleList | 7600 | 7560 | 10486 |
-| MediaContentList | 5776 | 6080 | 8006 |
+| Data Type | Fory | Protobuf | Msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct | 78 | 93 | 88 |
+| Sample | 445 | 375 | 524 |
+| MediaContent | 340 | 301 | 400 |
+| NumericStructList | 819 | 1900 | 1766 |
+| SampleList | 7599 | 7560 | 10486 |
+| MediaContentList | 5774 | 6080 | 8006 |
+
+## Performance Charts
+
+### Throughput
+
+
+
+### NumericStruct
+
+
+
+### Sample
+
+
+
+### MediaContent
+
+
+
+### NumericStructList
+
+
+
+### SampleList
+
+
+
+### MediaContentList
+
+
diff --git a/docs/benchmarks/go/benchmark_mediacontent.png
b/docs/benchmarks/go/benchmark_mediacontent.png
index dd914fc25b..568b0dd590 100644
Binary files a/docs/benchmarks/go/benchmark_mediacontent.png and
b/docs/benchmarks/go/benchmark_mediacontent.png differ
diff --git a/docs/benchmarks/go/benchmark_mediacontentlist.png
b/docs/benchmarks/go/benchmark_mediacontentlist.png
index 8c10cb933d..d068e81447 100644
Binary files a/docs/benchmarks/go/benchmark_mediacontentlist.png and
b/docs/benchmarks/go/benchmark_mediacontentlist.png differ
diff --git a/docs/benchmarks/go/benchmark_sample.png
b/docs/benchmarks/go/benchmark_sample.png
index 7984bae39d..027504a9d0 100644
Binary files a/docs/benchmarks/go/benchmark_sample.png and
b/docs/benchmarks/go/benchmark_sample.png differ
diff --git a/docs/benchmarks/go/benchmark_samplelist.png
b/docs/benchmarks/go/benchmark_samplelist.png
index 0f88771144..48b6e478d3 100644
Binary files a/docs/benchmarks/go/benchmark_samplelist.png and
b/docs/benchmarks/go/benchmark_samplelist.png differ
diff --git a/docs/benchmarks/go/benchmark_struct.png
b/docs/benchmarks/go/benchmark_struct.png
index e07c004ce7..690c5c3ebf 100644
Binary files a/docs/benchmarks/go/benchmark_struct.png and
b/docs/benchmarks/go/benchmark_struct.png differ
diff --git a/docs/benchmarks/go/benchmark_structlist.png
b/docs/benchmarks/go/benchmark_structlist.png
index 5a97780ac4..80b240588f 100644
Binary files a/docs/benchmarks/go/benchmark_structlist.png and
b/docs/benchmarks/go/benchmark_structlist.png differ
diff --git a/docs/benchmarks/go/serialized_sizes.txt
b/docs/benchmarks/go/serialized_sizes.txt
index 5a54edec6e..a64d3e1c05 100644
--- a/docs/benchmarks/go/serialized_sizes.txt
+++ b/docs/benchmarks/go/serialized_sizes.txt
@@ -1,27 +1,27 @@
Serialized Sizes (bytes):
============================================
NumericStruct:
- Fory: 58 bytes
- Protobuf: 61 bytes
- Msgpack: 57 bytes
+ Fory: 78 bytes
+ Protobuf: 93 bytes
+ Msgpack: 88 bytes
Sample:
- Fory: 446 bytes
+ Fory: 445 bytes
Protobuf: 375 bytes
Msgpack: 524 bytes
MediaContent:
- Fory: 342 bytes
+ Fory: 340 bytes
Protobuf: 301 bytes
Msgpack: 400 bytes
-StructList:
- Fory: 560 bytes
- Protobuf: 1260 bytes
- Msgpack: 1146 bytes
+NumericStructList:
+ Fory: 819 bytes
+ Protobuf: 1900 bytes
+ Msgpack: 1766 bytes
SampleList:
- Fory: 7600 bytes
+ Fory: 7599 bytes
Protobuf: 7560 bytes
Msgpack: 10486 bytes
MediaContentList:
- Fory: 5776 bytes
+ Fory: 5774 bytes
Protobuf: 6080 bytes
Msgpack: 8006 bytes
============================================
diff --git a/docs/benchmarks/go/throughput.png
b/docs/benchmarks/go/throughput.png
new file mode 100644
index 0000000000..f7104d7d9c
Binary files /dev/null and b/docs/benchmarks/go/throughput.png differ
diff --git a/docs/benchmarks/java/README.md b/docs/benchmarks/java/README.md
index 59702a4c26..f3c6badb31 100644
--- a/docs/benchmarks/java/README.md
+++ b/docs/benchmarks/java/README.md
@@ -58,7 +58,7 @@ MEDIA_CONTENT is a class from
[jvm-serializers](https://github.com/eishay/jvm-se
SAMPLE is a class from [kryo
benchmark](https://github.com/EsotericSoftware/kryo/blob/master/benchmarks/src/main/java/com/esotericsoftware/kryo/benchmarks/data/Sample.java)
-## Benchmark Plots
+## Java Benchmark
### Serialize to heap buffer
@@ -138,9 +138,9 @@ But if you serialize data between processes on same node
and use shared-memory,

-## Benchmark Data
+### Benchmark Data
-### Java Serialization
+#### Java Serialization
| Benchmark | objectType | bufferType | references | Fory
| ForyMetaShared | Kryo | Fst | Hession | Jdk
| Protostuff |
| ---------------------- | ------------- | ------------ | ---------- |
-------------- | --------------- | -------------- | ------------- |
------------- | ------------- | ------------- |
@@ -209,7 +209,7 @@ But if you serialize data between processes on same node
and use shared-memory,
| deserialize_compatible | SAMPLE | directBuffer | False |
2308111.633661 | 2289261.533644 | 201993.787890 | |
124044.417439 | | |
| deserialize_compatible | SAMPLE | directBuffer | True |
1820490.585648 | 1927548.827586 | 174534.710870 | |
120276.449497 | | |
-### Java Zero-copy
+#### Java Zero-copy
| Benchmark | array_size | bufferType | dataType | Fory |
Kryo | Fst |
| ----------- | ---------- | ------------ | --------------- | -------------- |
-------------- | -------------- |
@@ -237,3 +237,31 @@ But if you serialize data between processes on same node
and use shared-memory,
| deserialize | 5000 | array | PRIMITIVE_ARRAY | 40312.590172 |
6122.351228 | 10672.872798 |
| deserialize | 5000 | directBuffer | BUFFER | 3284441.570594 |
148614.476829 | 77950.612503 |
| deserialize | 5000 | directBuffer | PRIMITIVE_ARRAY | 40413.743717 |
21826.040410 | 8561.694533 |
+
+## Xlang Benchmark
+
+Run from `benchmarks/java/run.sh`. Raw JMH JSON stays under the ignored local
`benchmarks/java/reports/` directory; only `throughput.png` is copied into
`docs/benchmarks/java/`.
+
+```bash
+cd benchmarks/java
+./run.sh --output-dir ../../docs/benchmarks/java
+```
+
+JMH parameters: `-f 1 -wi 3 -i 3 -t 1 -w 3s -r 3s -bm thrpt -tu s`. Higher
throughput is better.
+
+
+
+| Data type | Operation | Fory ops/sec | Protobuf ops/sec |
Flatbuffer ops/sec | Fastest |
+| ----------------- | ----------- | ------------ | ---------------- |
------------------ | ---------- |
+| NumericStruct | Serialize | 35,509,283 | 16,293,680 |
9,252,939 | Fory |
+| NumericStruct | Deserialize | 39,366,466 | 13,216,969 |
44,655,865 | Flatbuffer |
+| Sample | Serialize | 18,210,799 | 2,004,689 |
2,472,044 | Fory |
+| Sample | Deserialize | 18,342,162 | 1,869,185 |
4,061,787 | Fory |
+| MediaContent | Serialize | 10,637,892 | 3,270,255 |
1,387,937 | Fory |
+| MediaContent | Deserialize | 9,091,945 | 2,512,194 |
3,548,934 | Fory |
+| NumericStructList | Serialize | 11,321,689 | 2,617,864 |
3,309,333 | Fory |
+| NumericStructList | Deserialize | 12,088,544 | 2,091,938 |
7,478,377 | Fory |
+| SampleList | Serialize | 4,458,489 | 403,819 | 638,011
| Fory |
+| SampleList | Deserialize | 2,335,308 | 360,378 | 760,997
| Fory |
+| MediaContentList | Serialize | 1,795,904 | 351,794 | 250,981
| Fory |
+| MediaContentList | Deserialize | 989,372 | 453,614 | 510,958
| Fory |
diff --git a/docs/benchmarks/java/throughput.png
b/docs/benchmarks/java/throughput.png
new file mode 100644
index 0000000000..b49d9721b1
Binary files /dev/null and b/docs/benchmarks/java/throughput.png differ
diff --git a/docs/benchmarks/javascript/README.md
b/docs/benchmarks/javascript/README.md
index f51899233f..bb0691efe9 100644
--- a/docs/benchmarks/javascript/README.md
+++ b/docs/benchmarks/javascript/README.md
@@ -1,6 +1,6 @@
# JavaScript Benchmark Performance Report
-_Generated on 2026-04-14 17:11:43_
+_Generated on 2026-05-08 11:29:18_
## How to Generate This Report
@@ -9,6 +9,10 @@ cd benchmarks/javascript
./run.sh
```
+## Benchmark Semantics
+
+The timed serializer loops use serializer-native typed values. Fory receives
the pre-normalized Fory value used by its schema, protobuf receives the
prebuilt protobuf-shaped value, and JSON receives the benchmark JavaScript
object. Protobuf timings do not include `toProto`, `fromProto`,
`protobufjs.create`, or `toObject` conversion work.
+
## Hardware & OS Info
| Key | Value |
@@ -19,10 +23,10 @@ cd benchmarks/javascript
| CPU Cores (Physical) | 12 |
| CPU Cores (Logical) | 12 |
| Total RAM (GB) | 48.0 |
-| Benchmark Date | 2026-04-14T09:09:51.959Z |
+| Benchmark Date | 2026-05-08T03:27:27.670Z |
| CPU Cores (from benchmark) | 12 |
-| Node.js | v22.20.0 |
-| V8 | 12.4.254.21-node.33 |
+| Node.js | v25.8.1 |
+| V8 | 14.1.146.11-node.21 |
## Benchmark Plots
@@ -48,57 +52,57 @@ All class-level plots below show throughput (ops/sec).

-### Struct
+### NumericStruct
-
+
-### StructList
+### NumericStructList
-
+
## Benchmark Results
### Timing Results (nanoseconds)
-| Datatype | Operation | fory (ns) | protobuf (ns) | json (ns) |
Fastest |
-| ---------------- | ----------- | --------- | ------------- | --------- |
------- |
-| Struct | Serialize | 118.3 | 525.3 | 327.0 |
fory |
-| Struct | Deserialize | 103.0 | 121.5 | 259.0 |
fory |
-| Sample | Serialize | 667.4 | 2366.2 | 1342.7 |
fory |
-| Sample | Deserialize | 521.3 | 1221.0 | 1312.3 |
fory |
-| MediaContent | Serialize | 773.3 | 1370.8 | 769.3 |
json |
-| MediaContent | Deserialize | 610.5 | 827.0 | 1085.6 |
fory |
-| StructList | Serialize | 254.6 | 2017.6 | 1121.3 |
fory |
-| StructList | Deserialize | 306.3 | 653.7 | 1014.1 |
fory |
-| SampleList | Serialize | 2812.3 | 10782.7 | 6130.4 |
fory |
-| SampleList | Deserialize | 2353.4 | 6125.5 | 6153.1 |
fory |
-| MediaContentList | Serialize | 3495.9 | 6712.4 | 3540.5 |
fory |
-| MediaContentList | Deserialize | 2653.7 | 4087.9 | 5258.9 |
fory |
+| Datatype | Operation | fory (ns) | protobuf (ns) | json (ns) |
Fastest |
+| ----------------- | ----------- | --------- | ------------- | --------- |
------- |
+| NumericStruct | Serialize | 77.8 | 447.6 | 121.8 |
fory |
+| NumericStruct | Deserialize | 46.4 | 83.2 | 321.6 |
fory |
+| Sample | Serialize | 270.9 | 1789.4 | 576.2 |
fory |
+| Sample | Deserialize | 528.3 | 824.3 | 1315.1 |
fory |
+| MediaContent | Serialize | 459.4 | 1324.7 | 566.5 |
fory |
+| MediaContent | Deserialize | 544.6 | 661.9 | 1194.3 |
fory |
+| NumericStructList | Serialize | 199.5 | 2407.5 | 606.6 |
fory |
+| NumericStructList | Deserialize | 143.7 | 552.3 | 1481.9 |
fory |
+| SampleList | Serialize | 1171.2 | 8526.9 | 2959.5 |
fory |
+| SampleList | Deserialize | 2467.5 | 4208.7 | 5973.5 |
fory |
+| MediaContentList | Serialize | 2164.1 | 6332.4 | 2593.9 |
fory |
+| MediaContentList | Deserialize | 2487.4 | 3462.5 | 5877.0 |
fory |
### Throughput Results (ops/sec)
-| Datatype | Operation | fory TPS | protobuf TPS | json TPS |
Fastest |
-| ---------------- | ----------- | --------- | ------------ | --------- |
------- |
-| Struct | Serialize | 8,453,950 | 1,903,706 | 3,058,232 | fory
|
-| Struct | Deserialize | 9,705,287 | 8,233,664 | 3,860,538 | fory
|
-| Sample | Serialize | 1,498,391 | 422,620 | 744,790 | fory
|
-| Sample | Deserialize | 1,918,162 | 819,010 | 762,048 | fory
|
-| MediaContent | Serialize | 1,293,157 | 729,497 | 1,299,908 | json
|
-| MediaContent | Deserialize | 1,638,086 | 1,209,140 | 921,191 | fory
|
-| StructList | Serialize | 3,928,325 | 495,648 | 891,810 | fory
|
-| StructList | Deserialize | 3,264,827 | 1,529,744 | 986,144 | fory
|
-| SampleList | Serialize | 355,581 | 92,741 | 163,120 | fory
|
-| SampleList | Deserialize | 424,916 | 163,253 | 162,520 | fory
|
-| MediaContentList | Serialize | 286,053 | 148,977 | 282,445 | fory
|
-| MediaContentList | Deserialize | 376,826 | 244,622 | 190,155 | fory
|
+| Datatype | Operation | fory TPS | protobuf TPS | json TPS |
Fastest |
+| ----------------- | ----------- | ---------- | ------------ | --------- |
------- |
+| NumericStruct | Serialize | 12,849,851 | 2,234,166 | 8,208,279 |
fory |
+| NumericStruct | Deserialize | 21,547,808 | 12,017,233 | 3,109,551 |
fory |
+| Sample | Serialize | 3,690,917 | 558,841 | 1,735,442 |
fory |
+| Sample | Deserialize | 1,892,771 | 1,213,083 | 760,401 |
fory |
+| MediaContent | Serialize | 2,176,977 | 754,884 | 1,765,218 |
fory |
+| MediaContent | Deserialize | 1,836,161 | 1,510,915 | 837,278 |
fory |
+| NumericStructList | Serialize | 5,013,481 | 415,368 | 1,648,437 |
fory |
+| NumericStructList | Deserialize | 6,958,482 | 1,810,451 | 674,822 |
fory |
+| SampleList | Serialize | 853,833 | 117,276 | 337,895 |
fory |
+| SampleList | Deserialize | 405,267 | 237,605 | 167,406 |
fory |
+| MediaContentList | Serialize | 462,077 | 157,919 | 385,519 |
fory |
+| MediaContentList | Deserialize | 402,028 | 288,809 | 170,156 |
fory |
### Serialized Data Sizes (bytes)
-| Datatype | fory | protobuf | json |
-| ---------------- | ---- | -------- | ---- |
-| Struct | 58 | 61 | 103 |
-| Sample | 446 | 377 | 724 |
-| MediaContent | 391 | 307 | 596 |
-| StructList | 184 | 315 | 537 |
-| SampleList | 1980 | 1900 | 3642 |
-| MediaContentList | 1665 | 1550 | 3009 |
+| Datatype | fory | protobuf | json |
+| ----------------- | ---- | -------- | ---- |
+| NumericStruct | 78 | 93 | 159 |
+| Sample | 445 | 377 | 724 |
+| MediaContent | 388 | 307 | 596 |
+| NumericStructList | 255 | 475 | 817 |
+| SampleList | 1978 | 1900 | 3642 |
+| MediaContentList | 1661 | 1550 | 3009 |
diff --git a/docs/benchmarks/javascript/mediacontent.png
b/docs/benchmarks/javascript/mediacontent.png
index 45d2c34dbd..80cec1bd83 100644
Binary files a/docs/benchmarks/javascript/mediacontent.png and
b/docs/benchmarks/javascript/mediacontent.png differ
diff --git a/docs/benchmarks/javascript/mediacontentlist.png
b/docs/benchmarks/javascript/mediacontentlist.png
index a5763d0690..9c106b94fc 100644
Binary files a/docs/benchmarks/javascript/mediacontentlist.png and
b/docs/benchmarks/javascript/mediacontentlist.png differ
diff --git a/docs/benchmarks/javascript/sample.png
b/docs/benchmarks/javascript/sample.png
index 57c619b337..b70f5c0019 100644
Binary files a/docs/benchmarks/javascript/sample.png and
b/docs/benchmarks/javascript/sample.png differ
diff --git a/docs/benchmarks/javascript/samplelist.png
b/docs/benchmarks/javascript/samplelist.png
index 6e66a0a114..a45c3445d1 100644
Binary files a/docs/benchmarks/javascript/samplelist.png and
b/docs/benchmarks/javascript/samplelist.png differ
diff --git a/docs/benchmarks/javascript/struct.png
b/docs/benchmarks/javascript/struct.png
index e78a56967d..69f6db9ba5 100644
Binary files a/docs/benchmarks/javascript/struct.png and
b/docs/benchmarks/javascript/struct.png differ
diff --git a/docs/benchmarks/javascript/structlist.png
b/docs/benchmarks/javascript/structlist.png
index cae684ed23..a794c866d9 100644
Binary files a/docs/benchmarks/javascript/structlist.png and
b/docs/benchmarks/javascript/structlist.png differ
diff --git a/docs/benchmarks/javascript/throughput.png
b/docs/benchmarks/javascript/throughput.png
index fffd41c477..cdd5ac4928 100644
Binary files a/docs/benchmarks/javascript/throughput.png and
b/docs/benchmarks/javascript/throughput.png differ
diff --git a/docs/benchmarks/python/README.md b/docs/benchmarks/python/README.md
index 8e5ecd041b..544b417069 100644
--- a/docs/benchmarks/python/README.md
+++ b/docs/benchmarks/python/README.md
@@ -1,6 +1,6 @@
# Python Benchmark Performance Report
-_Generated on 2026-04-14 14:53:18_
+_Generated on 2026-05-08 11:35:12_
## How to Generate This Report
@@ -41,73 +41,73 @@ All plots show throughput (ops/sec); higher is better.

-### Mediacontent
+### MediaContent
-
+
-### Mediacontentlist
+### MediaContentList
-
+
### Sample

-### Samplelist
+### SampleList
-
+
-### Struct
+### NumericStruct
-
+
-### Structlist
+### NumericStructList
-
+
## Benchmark Results
### Timing Results (nanoseconds)
-| Datatype | Operation | fory (ns) | pickle (ns) | protobuf (ns) |
Fastest |
-| ---------------- | ----------- | --------- | ----------- | ------------- |
-------- |
-| Struct | Serialize | 431.3 | 963.9 | 604.3 |
fory |
-| Struct | Deserialize | 476.6 | 925.1 | 804.8 |
fory |
-| Sample | Serialize | 4966.3 | 12725.1 | 4396.0 |
protobuf |
-| Sample | Deserialize | 4362.9 | 6409.2 | 6620.1 |
fory |
-| MediaContent | Serialize | 1213.1 | 4263.1 | 3173.7 |
fory |
-| MediaContent | Deserialize | 1620.7 | 4625.8 | 4306.3 |
fory |
-| StructList | Serialize | 1072.0 | 2798.6 | 3759.0 |
fory |
-| StructList | Deserialize | 1334.7 | 2756.7 | 3963.5 |
fory |
-| SampleList | Serialize | 23866.8 | 33484.5 | 18711.7 |
protobuf |
-| SampleList | Deserialize | 17347.5 | 22999.0 | 36077.1 |
fory |
-| MediaContentList | Serialize | 3526.9 | 11258.1 | 17670.6 |
fory |
-| MediaContentList | Deserialize | 6241.1 | 10209.5 | 21440.7 |
fory |
+| Datatype | Operation | fory (ns) | protobuf (ns) | pickle (ns) |
Fastest |
+| ----------------- | ----------- | --------- | ------------- | ----------- |
------- |
+| NumericStruct | Serialize | 517.0 | 873.6 | 1038.7 |
fory |
+| NumericStruct | Deserialize | 504.6 | 1151.9 | 1280.5 |
fory |
+| Sample | Serialize | 924.4 | 3204.0 | 11322.5 |
fory |
+| Sample | Deserialize | 2891.0 | 11464.7 | 7169.7 |
fory |
+| MediaContent | Serialize | 1140.5 | 3460.1 | 5074.0 |
fory |
+| MediaContent | Deserialize | 1509.3 | 4476.4 | 4357.6 |
fory |
+| NumericStructList | Serialize | 1052.5 | 4606.0 | 3064.1 |
fory |
+| NumericStructList | Deserialize | 1635.3 | 5882.8 | 3945.2 |
fory |
+| SampleList | Serialize | 3680.0 | 18709.4 | 33800.9 |
fory |
+| SampleList | Deserialize | 13702.0 | 35818.0 | 23745.4 |
fory |
+| MediaContentList | Serialize | 3262.0 | 18170.7 | 11015.9 |
fory |
+| MediaContentList | Deserialize | 6267.0 | 22423.2 | 13695.5 |
fory |
### Throughput Results (ops/sec)
-| Datatype | Operation | fory TPS | pickle TPS | protobuf TPS |
Fastest |
-| ---------------- | ----------- | --------- | ---------- | ------------ |
-------- |
-| Struct | Serialize | 2,318,598 | 1,037,429 | 1,654,700 |
fory |
-| Struct | Deserialize | 2,098,391 | 1,081,003 | 1,242,545 |
fory |
-| Sample | Serialize | 201,358 | 78,585 | 227,479 |
protobuf |
-| Sample | Deserialize | 229,204 | 156,026 | 151,056 |
fory |
-| MediaContent | Serialize | 824,338 | 234,569 | 315,087 |
fory |
-| MediaContent | Deserialize | 616,999 | 216,177 | 232,216 |
fory |
-| StructList | Serialize | 932,803 | 357,322 | 266,029 |
fory |
-| StructList | Deserialize | 749,212 | 362,753 | 252,301 |
fory |
-| SampleList | Serialize | 41,899 | 29,865 | 53,442 |
protobuf |
-| SampleList | Deserialize | 57,645 | 43,480 | 27,718 |
fory |
-| MediaContentList | Serialize | 283,535 | 88,825 | 56,591 |
fory |
-| MediaContentList | Deserialize | 160,227 | 97,948 | 46,640 |
fory |
+| Datatype | Operation | fory TPS | protobuf TPS | pickle TPS |
Fastest |
+| ----------------- | ----------- | --------- | ------------ | ---------- |
------- |
+| NumericStruct | Serialize | 1,934,203 | 1,144,735 | 962,697 |
fory |
+| NumericStruct | Deserialize | 1,981,615 | 868,166 | 780,935 |
fory |
+| Sample | Serialize | 1,081,792 | 312,107 | 88,320 |
fory |
+| Sample | Deserialize | 345,897 | 87,224 | 139,476 |
fory |
+| MediaContent | Serialize | 876,796 | 289,005 | 197,082 |
fory |
+| MediaContent | Deserialize | 662,558 | 223,395 | 229,483 |
fory |
+| NumericStructList | Serialize | 950,145 | 217,108 | 326,363 |
fory |
+| NumericStructList | Deserialize | 611,499 | 169,986 | 253,472 |
fory |
+| SampleList | Serialize | 271,739 | 53,449 | 29,585 |
fory |
+| SampleList | Deserialize | 72,982 | 27,919 | 42,114 |
fory |
+| MediaContentList | Serialize | 306,557 | 55,034 | 90,778 |
fory |
+| MediaContentList | Deserialize | 159,565 | 44,597 | 73,017 |
fory |
### Serialized Data Sizes (bytes)
-| Datatype | fory | pickle | protobuf |
-| ---------------- | ---- | ------ | -------- |
-| Struct | 58 | 126 | 61 |
-| Sample | 446 | 1176 | 375 |
-| MediaContent | 391 | 624 | 301 |
-| StructList | 184 | 420 | 315 |
-| SampleList | 1980 | 3546 | 1890 |
-| MediaContentList | 1665 | 1415 | 1520 |
+| Datatype | fory | protobuf | pickle |
+| ----------------- | ---- | -------- | ------ |
+| NumericStruct | 78 | 93 | 169 |
+| Sample | 445 | 375 | 1176 |
+| MediaContent | 366 | 301 | 624 |
+| NumericStructList | 219 | 475 | 582 |
+| SampleList | 1914 | 1890 | 3546 |
+| MediaContentList | 1614 | 1520 | 1415 |
diff --git a/docs/benchmarks/python/mediacontent.png
b/docs/benchmarks/python/mediacontent.png
index 7f17e52679..ef9eca86c3 100644
Binary files a/docs/benchmarks/python/mediacontent.png and
b/docs/benchmarks/python/mediacontent.png differ
diff --git a/docs/benchmarks/python/mediacontentlist.png
b/docs/benchmarks/python/mediacontentlist.png
index c81ff2ea63..82ca2d9b98 100644
Binary files a/docs/benchmarks/python/mediacontentlist.png and
b/docs/benchmarks/python/mediacontentlist.png differ
diff --git a/docs/benchmarks/python/sample.png
b/docs/benchmarks/python/sample.png
index d6aaf4bbe8..1324ca10c7 100644
Binary files a/docs/benchmarks/python/sample.png and
b/docs/benchmarks/python/sample.png differ
diff --git a/docs/benchmarks/python/samplelist.png
b/docs/benchmarks/python/samplelist.png
index ead979d480..f1fa8b0290 100644
Binary files a/docs/benchmarks/python/samplelist.png and
b/docs/benchmarks/python/samplelist.png differ
diff --git a/docs/benchmarks/python/struct.png
b/docs/benchmarks/python/struct.png
index 3fb6c6ab82..01d1f3f6d2 100644
Binary files a/docs/benchmarks/python/struct.png and
b/docs/benchmarks/python/struct.png differ
diff --git a/docs/benchmarks/python/structlist.png
b/docs/benchmarks/python/structlist.png
index 23107a9aed..1c8509a8ce 100644
Binary files a/docs/benchmarks/python/structlist.png and
b/docs/benchmarks/python/structlist.png differ
diff --git a/docs/benchmarks/python/throughput.png
b/docs/benchmarks/python/throughput.png
index a1954fb6d8..d0b551b556 100644
Binary files a/docs/benchmarks/python/throughput.png and
b/docs/benchmarks/python/throughput.png differ
diff --git a/docs/benchmarks/rust/README.md b/docs/benchmarks/rust/README.md
index 56cfc3bd1c..e7ab4d5ec5 100644
--- a/docs/benchmarks/rust/README.md
+++ b/docs/benchmarks/rust/README.md
@@ -1,6 +1,6 @@
# Rust Benchmark Performance Report
-_Generated on 2026-03-20 18:40:46_
+_Generated on 2026-05-08 03:28:21_
## How to Generate This Report
@@ -21,7 +21,7 @@ python benchmark_report.py --log-file results/cargo_bench.log
--size-file result
| CPU Cores (Physical) | 12 |
| CPU Cores (Logical) | 12 |
| Total RAM (GB) | 48.0 |
-| Benchmark Date | 2026-03-20T18:40:44 |
+| Benchmark Date | 2026-05-08T03:28:19 |
## Benchmark Plots
@@ -47,57 +47,57 @@ All class-level plots below show throughput (ops/sec).

-### Struct
+### NumericStruct
-
+
-### StructList
+### NumericStructList
-
+
## Benchmark Results
### Timing Results (nanoseconds)
-| Datatype | Operation | fory (ns) | protobuf (ns) | Fastest |
-| ---------------- | ----------- | --------- | ------------- | ------- |
-| Struct | Serialize | 69.6 | 76.8 | fory |
-| Struct | Deserialize | 27.0 | 70.4 | fory |
-| Sample | Serialize | 148.5 | 584.3 | fory |
-| Sample | Deserialize | 350.9 | 983.1 | fory |
-| MediaContent | Serialize | 277.8 | 553.2 | fory |
-| MediaContent | Deserialize | 472.3 | 706.4 | fory |
-| StructList | Serialize | 170.4 | 385.4 | fory |
-| StructList | Deserialize | 96.8 | 294.7 | fory |
-| SampleList | Serialize | 356.2 | 3155.7 | fory |
-| SampleList | Deserialize | 1644.1 | 4361.0 | fory |
-| MediaContentList | Serialize | 657.4 | 2844.0 | fory |
-| MediaContentList | Deserialize | 2397.7 | 3696.6 | fory |
+| Datatype | Operation | fory (ns) | protobuf (ns) | msgpack (ns) |
Fastest |
+| ----------------- | ----------- | --------- | ------------- | ------------ |
------- |
+| NumericStruct | Serialize | 37.4 | 94.5 | 230.1 |
fory |
+| NumericStruct | Deserialize | 32.2 | 66.1 | 106.3 |
fory |
+| Sample | Serialize | 97.3 | 545.7 | 629.1 |
fory |
+| Sample | Deserialize | 349.1 | 894.3 | 789.1 |
fory |
+| MediaContent | Serialize | 121.2 | 548.3 | 447.5 |
fory |
+| MediaContent | Deserialize | 548.6 | 692.2 | 899.3 |
fory |
+| NumericStructList | Serialize | 120.6 | 499.9 | 631.8 |
fory |
+| NumericStructList | Deserialize | 124.4 | 419.7 | 598.6 |
fory |
+| SampleList | Serialize | 270.3 | 2895.9 | 1940.5 |
fory |
+| SampleList | Deserialize | 1650.2 | 4422.7 | 4102.0 |
fory |
+| MediaContentList | Serialize | 371.5 | 2788.5 | 1407.5 |
fory |
+| MediaContentList | Deserialize | 2679.7 | 3609.2 | 4762.7 |
fory |
### Throughput Results (ops/sec)
-| Datatype | Operation | fory TPS | protobuf TPS | Fastest |
-| ---------------- | ----------- | ---------- | ------------ | ------- |
-| Struct | Serialize | 14,366,165 | 13,022,359 | fory |
-| Struct | Deserialize | 37,065,866 | 14,202,528 | fory |
-| Sample | Serialize | 6,734,914 | 1,711,537 | fory |
-| Sample | Deserialize | 2,849,409 | 1,017,201 | fory |
-| MediaContent | Serialize | 3,600,230 | 1,807,664 | fory |
-| MediaContent | Deserialize | 2,117,433 | 1,415,689 | fory |
-| StructList | Serialize | 5,866,823 | 2,595,043 | fory |
-| StructList | Deserialize | 10,330,152 | 3,393,051 | fory |
-| SampleList | Serialize | 2,807,333 | 316,887 | fory |
-| SampleList | Deserialize | 608,236 | 229,305 | fory |
-| MediaContentList | Serialize | 1,521,098 | 351,617 | fory |
-| MediaContentList | Deserialize | 417,066 | 270,519 | fory |
+| Datatype | Operation | fory TPS | protobuf TPS | msgpack TPS |
Fastest |
+| ----------------- | ----------- | ---------- | ------------ | ----------- |
------- |
+| NumericStruct | Serialize | 26,727,248 | 10,577,086 | 4,346,503 |
fory |
+| NumericStruct | Deserialize | 31,097,428 | 15,129,280 | 9,410,879 |
fory |
+| Sample | Serialize | 10,275,803 | 1,832,475 | 1,589,648 |
fory |
+| Sample | Deserialize | 2,864,919 | 1,118,243 | 1,267,315 |
fory |
+| MediaContent | Serialize | 8,249,464 | 1,823,753 | 2,234,637 |
fory |
+| MediaContent | Deserialize | 1,822,722 | 1,444,627 | 1,112,013 |
fory |
+| NumericStructList | Serialize | 8,293,937 | 2,000,400 | 1,582,779 |
fory |
+| NumericStructList | Deserialize | 8,038,585 | 2,382,768 | 1,670,425 |
fory |
+| SampleList | Serialize | 3,700,004 | 345,316 | 515,331 |
fory |
+| SampleList | Deserialize | 605,987 | 226,106 | 243,784 |
fory |
+| MediaContentList | Serialize | 2,691,573 | 358,616 | 710,480 |
fory |
+| MediaContentList | Deserialize | 373,176 | 277,070 | 209,965 |
fory |
### Serialized Data Sizes (bytes)
-| Datatype | fory | protobuf |
-| ---------------- | ---- | -------- |
-| Struct | 58 | 61 |
-| Sample | 446 | 375 |
-| MediaContent | 365 | 301 |
-| StructList | 184 | 315 |
-| SampleList | 1980 | 1890 |
-| MediaContentList | 1535 | 1520 |
+| Datatype | fory | protobuf | msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct | 78 | 93 | 87 |
+| Sample | 445 | 375 | 590 |
+| MediaContent | 362 | 301 | 500 |
+| NumericStructList | 255 | 475 | 449 |
+| SampleList | 1978 | 1890 | 2964 |
+| MediaContentList | 1531 | 1520 | 2521 |
diff --git a/docs/benchmarks/rust/mediacontent.png
b/docs/benchmarks/rust/mediacontent.png
index 8d026ef4b0..a6d1848a4b 100644
Binary files a/docs/benchmarks/rust/mediacontent.png and
b/docs/benchmarks/rust/mediacontent.png differ
diff --git a/docs/benchmarks/rust/mediacontentlist.png
b/docs/benchmarks/rust/mediacontentlist.png
index f2bf6b7214..2bf6131504 100644
Binary files a/docs/benchmarks/rust/mediacontentlist.png and
b/docs/benchmarks/rust/mediacontentlist.png differ
diff --git a/docs/benchmarks/rust/sample.png b/docs/benchmarks/rust/sample.png
index e63ebcbad8..c6794ef7e3 100644
Binary files a/docs/benchmarks/rust/sample.png and
b/docs/benchmarks/rust/sample.png differ
diff --git a/docs/benchmarks/rust/samplelist.png
b/docs/benchmarks/rust/samplelist.png
index b7ba75b72f..3d5368a548 100644
Binary files a/docs/benchmarks/rust/samplelist.png and
b/docs/benchmarks/rust/samplelist.png differ
diff --git a/docs/benchmarks/rust/struct.png b/docs/benchmarks/rust/struct.png
index e12c6a3327..c868cc0cf8 100644
Binary files a/docs/benchmarks/rust/struct.png and
b/docs/benchmarks/rust/struct.png differ
diff --git a/docs/benchmarks/rust/structlist.png
b/docs/benchmarks/rust/structlist.png
index e030cf45fd..725ea4f7da 100644
Binary files a/docs/benchmarks/rust/structlist.png and
b/docs/benchmarks/rust/structlist.png differ
diff --git a/docs/benchmarks/rust/throughput.png
b/docs/benchmarks/rust/throughput.png
index be89782fbb..659b2753a6 100644
Binary files a/docs/benchmarks/rust/throughput.png and
b/docs/benchmarks/rust/throughput.png differ
diff --git a/docs/benchmarks/swift/README.md b/docs/benchmarks/swift/README.md
index c2376a5dab..5c70c5ab19 100644
--- a/docs/benchmarks/swift/README.md
+++ b/docs/benchmarks/swift/README.md
@@ -6,7 +6,7 @@ This benchmark compares serialization and deserialization
throughput for Apache
| Key | Value |
| --------------------- | ----------------------------- |
-| Timestamp | 2026-03-10T06:25:16Z |
+| Timestamp | 2026-05-07T19:46:19Z |
| OS | Version 15.7.2 (Build 24G325) |
| Host | macbook-pro.local |
| CPU Cores (Logical) | 12 |
@@ -17,28 +17,28 @@ This benchmark compares serialization and deserialization
throughput for Apache

-| Datatype | Operation | Fory TPS | Protobuf TPS | Msgpack TPS |
Fastest |
-| ---------------- | ----------- | ---------: | -----------: | ----------: |
------------ |
-| Struct | Serialize | 9,727,950 | 6,572,406 | 141,248 |
fory (1.48x) |
-| Struct | Deserialize | 11,889,570 | 8,584,510 | 99,792 |
fory (1.39x) |
-| Sample | Serialize | 3,496,305 | 1,281,983 | 17,188 |
fory (2.73x) |
-| Sample | Deserialize | 1,045,018 | 765,706 | 12,767 |
fory (1.36x) |
-| MediaContent | Serialize | 1,425,354 | 678,542 | 29,048 |
fory (2.10x) |
-| MediaContent | Deserialize | 614,447 | 478,298 | 12,711 |
fory (1.28x) |
-| StructList | Serialize | 3,307,962 | 1,028,210 | 24,781 |
fory (3.22x) |
-| StructList | Deserialize | 2,788,200 | 708,596 | 8,160 |
fory (3.93x) |
-| SampleList | Serialize | 715,734 | 205,380 | 3,361 |
fory (3.48x) |
-| SampleList | Deserialize | 199,317 | 133,425 | 1,498 |
fory (1.49x) |
-| MediaContentList | Serialize | 364,097 | 103,721 | 5,538 |
fory (3.51x) |
-| MediaContentList | Deserialize | 103,421 | 86,331 | 1,529 |
fory (1.20x) |
+| Datatype | Operation | Fory TPS | Protobuf TPS | Msgpack TPS |
Fastest |
+| ----------------- | ----------- | ---------: | -----------: | ----------: |
------------ |
+| NumericStruct | Serialize | 9,456,190 | 6,237,003 | 99,134 |
fory (1.52x) |
+| NumericStruct | Deserialize | 11,244,151 | 6,898,201 | 68,135 |
fory (1.63x) |
+| Sample | Serialize | 3,653,537 | 1,269,790 | 17,033 |
fory (2.88x) |
+| Sample | Deserialize | 992,566 | 751,855 | 12,379 |
fory (1.32x) |
+| MediaContent | Serialize | 1,586,123 | 673,382 | 28,762 |
fory (2.36x) |
+| MediaContent | Deserialize | 606,656 | 471,433 | 12,321 |
fory (1.29x) |
+| NumericStructList | Serialize | 2,981,475 | 930,517 | 18,067 |
fory (3.20x) |
+| NumericStructList | Deserialize | 2,466,526 | 720,704 | 6,191 |
fory (3.42x) |
+| SampleList | Serialize | 784,804 | 205,426 | 3,356 |
fory (3.82x) |
+| SampleList | Deserialize | 191,930 | 132,154 | 1,452 |
fory (1.45x) |
+| MediaContentList | Serialize | 347,354 | 100,939 | 5,460 |
fory (3.44x) |
+| MediaContentList | Deserialize | 114,145 | 84,897 | 1,446 |
fory (1.34x) |
## Serialized Size (bytes)
-| Datatype | Fory | Protobuf | Msgpack |
-| ---------------- | ---: | -------: | ------: |
-| MediaContent | 365 | 301 | 524 |
-| MediaContentList | 1535 | 1520 | 2639 |
-| Sample | 446 | 375 | 737 |
-| SampleList | 1980 | 1890 | 3698 |
-| Struct | 58 | 61 | 65 |
-| StructList | 184 | 315 | 338 |
+| Datatype | Fory | Protobuf | Msgpack |
+| ----------------- | ---: | -------: | ------: |
+| NumericStruct | 78 | 93 | 100 |
+| Sample | 445 | 375 | 737 |
+| MediaContent | 362 | 301 | 524 |
+| NumericStructList | 255 | 475 | 513 |
+| SampleList | 1978 | 1890 | 3698 |
+| MediaContentList | 1531 | 1520 | 2639 |
diff --git a/docs/benchmarks/swift/throughput.png
b/docs/benchmarks/swift/throughput.png
index 291dc81451..f4a140ebfb 100644
Binary files a/docs/benchmarks/swift/throughput.png and
b/docs/benchmarks/swift/throughput.png differ
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]