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 dfea10e3d4 🔄 synced local 'docs/benchmarks/' with remote
'docs/benchmarks/'
dfea10e3d4 is described below
commit dfea10e3d47e767932512000a2f713f5d4a0bc65
Author: chaokunyang <[email protected]>
AuthorDate: Fri May 8 09:45:05 2026 +0000
🔄 synced local 'docs/benchmarks/' with remote 'docs/benchmarks/'
---
docs/benchmarks/cpp/README.md | 90 ++--
docs/benchmarks/cpp/throughput.png | Bin 114387 -> 103811 bytes
docs/benchmarks/csharp/README.md | 90 ++--
docs/benchmarks/csharp/throughput.png | Bin 111858 -> 108834 bytes
docs/benchmarks/dart/README.md | 58 +--
docs/benchmarks/dart/throughput.png | Bin 102054 -> 106597 bytes
docs/benchmarks/go/README.md | 86 ++--
docs/benchmarks/go/benchmark_results.txt | 472 ++++++++++-----------
docs/benchmarks/go/throughput.png | Bin 89753 -> 106775 bytes
docs/benchmarks/java/README.md | 32 +-
.../java/java_heap_deserialize_compatible.png | Bin 95479 -> 91290 bytes
.../java/java_heap_deserialize_consistent.png | Bin 104022 -> 102335 bytes
.../java/java_heap_serialize_compatible.png | Bin 104969 -> 100843 bytes
.../java/java_heap_serialize_consistent.png | Bin 102858 -> 100648 bytes
.../java/java_offheap_deserialize_compatible.png | Bin 100158 -> 96677 bytes
.../java/java_offheap_deserialize_consistent.png | Bin 104245 -> 101898 bytes
.../java/java_offheap_serialize_compatible.png | Bin 115647 -> 109379 bytes
.../java/java_offheap_serialize_consistent.png | Bin 117336 -> 110476 bytes
.../java/java_repo_deserialization_throughput.png | Bin 112116 -> 105680 bytes
.../java/java_repo_serialization_throughput.png | Bin 120005 -> 113741 bytes
.../benchmarks/java/java_zero_copy_deserialize.png | Bin 93509 -> 90075 bytes
docs/benchmarks/java/java_zero_copy_serialize.png | Bin 94327 -> 86235 bytes
docs/benchmarks/java/throughput.png | Bin 112250 -> 107449 bytes
docs/benchmarks/javascript/README.md | 102 ++---
docs/benchmarks/javascript/throughput.png | Bin 106283 -> 108930 bytes
docs/benchmarks/python/README.md | 88 ++--
docs/benchmarks/python/throughput.png | Bin 108399 -> 109992 bytes
docs/benchmarks/rust/README.md | 90 ++--
docs/benchmarks/rust/throughput.png | Bin 112113 -> 102535 bytes
docs/benchmarks/swift/README.md | 54 +--
docs/benchmarks/swift/throughput.png | Bin 106898 -> 107976 bytes
31 files changed, 492 insertions(+), 670 deletions(-)
diff --git a/docs/benchmarks/cpp/README.md b/docs/benchmarks/cpp/README.md
index 156869e3e8..6f878da49b 100644
--- a/docs/benchmarks/cpp/README.md
+++ b/docs/benchmarks/cpp/README.md
@@ -1,6 +1,6 @@
# C++ Benchmark Performance Report
-_Generated on 2026-05-08 03:30:03_
+_Generated on 2026-05-08 17:26:51_
## How to Generate This Report
@@ -11,6 +11,12 @@ cd ..
python benchmark_report.py --json-file build/benchmark_results.json
--output-dir report
```
+## Benchmark Plot
+
+The plot shows throughput (ops/sec); higher is better.
+
+
+
## Hardware & OS Info
| Key | Value |
@@ -21,76 +27,44 @@ 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-05-08T03:29:26+08:00 |
+| Benchmark Date | 2026-05-08T16:29:28+08:00 |
| CPU Cores (from benchmark) | 12 |
-## Benchmark Plots
-
-All class-level plots below show throughput (ops/sec).
-
-### Throughput
-
-
-
-### NumericStruct
-
-
-
-### Sample
-
-
-
-### MediaContent
-
-
-
-### NumericStructList
-
-
-
-### SampleList
-
-
-
-### MediaContentList
-
-
-
## Benchmark Results
### Timing Results (nanoseconds)
| 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 |
+| NumericStruct | Serialize | 24.9 | 48.2 | 91.0 |
fory |
+| NumericStruct | Deserialize | 26.6 | 33.0 | 1194.5 |
fory |
+| Sample | Serialize | 62.3 | 97.3 | 314.6 |
fory |
+| Sample | Deserialize | 371.1 | 689.0 | 2649.9 |
fory |
+| MediaContent | Serialize | 115.0 | 857.2 | 311.7 |
fory |
+| MediaContent | Deserialize | 406.5 | 1193.1 | 3311.1 |
fory |
+| NumericStructList | Serialize | 81.7 | 495.0 | 485.6 |
fory |
+| NumericStructList | Deserialize | 180.9 | 410.6 | 5733.1 |
fory |
+| SampleList | Serialize | 284.9 | 5004.9 | 1579.6 |
fory |
+| SampleList | Deserialize | 1928.7 | 5118.1 | 13396.8 |
fory |
+| MediaContentList | Serialize | 464.8 | 4861.1 | 1671.1 |
fory |
+| MediaContentList | Deserialize | 2099.8 | 6610.3 | 13963.4 |
fory |
### Throughput Results (ops/sec)
| 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 |
+| NumericStruct | Serialize | 40,087,668 | 20,733,305 | 10,989,907 |
fory |
+| NumericStruct | Deserialize | 37,606,127 | 30,296,744 | 837,189 |
fory |
+| Sample | Serialize | 16,041,299 | 10,277,207 | 3,178,983 |
fory |
+| Sample | Deserialize | 2,694,434 | 1,451,449 | 377,373 |
fory |
+| MediaContent | Serialize | 8,698,574 | 1,166,539 | 3,208,626 |
fory |
+| MediaContent | Deserialize | 2,460,094 | 838,185 | 302,013 |
fory |
+| NumericStructList | Serialize | 12,240,275 | 2,020,102 | 2,059,276 |
fory |
+| NumericStructList | Deserialize | 5,527,333 | 2,435,246 | 174,427 |
fory |
+| SampleList | Serialize | 3,510,210 | 199,804 | 633,061 |
fory |
+| SampleList | Deserialize | 518,490 | 195,386 | 74,645 |
fory |
+| MediaContentList | Serialize | 2,151,560 | 205,715 | 598,396 |
fory |
+| MediaContentList | Deserialize | 476,241 | 151,280 | 71,616 |
fory |
### Serialized Data Sizes (bytes)
diff --git a/docs/benchmarks/cpp/throughput.png
b/docs/benchmarks/cpp/throughput.png
index ac557797b8..68cf01027f 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 62a8756055..f2c5e640fd 100644
--- a/docs/benchmarks/csharp/README.md
+++ b/docs/benchmarks/csharp/README.md
@@ -1,6 +1,6 @@
# C# Benchmark Performance Report
-_Generated on 2026-05-08 03:33:12_
+_Generated on 2026-05-08 17:26:51_
## How to Generate This Report
@@ -10,6 +10,12 @@ dotnet run -c Release --project
./Fory.CSharpBenchmark.csproj -- --output build/
python3 benchmark_report.py --json-file build/benchmark_results.json
--output-dir report
```
+## Benchmark Plot
+
+The plot shows throughput (ops/sec); higher is better.
+
+
+
## Hardware & OS Info
| Key | Value
|
@@ -18,7 +24,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-05-07T19:33:11.3470280Z
|
+| Benchmark Date (UTC) | 2026-05-08T08:17:48.7871870Z
|
| Warmup Seconds | 1
|
| Duration Seconds | 3
|
| CPU Logical Cores (from benchmark) | 12
|
@@ -35,73 +41,41 @@ python3 benchmark_report.py --json-file
build/benchmark_results.json --output-di
| Datatypes | struct, sample, mediacontent, structlist, samplelist,
mediacontentlist |
| Operations | serialize, deserialize
|
-## Benchmark Plots
-
-All class-level plots below show throughput (ops/sec).
-
-### Throughput
-
-
-
-### MediaContent
-
-
-
-### MediaContentList
-
-
-
-### Sample
-
-
-
-### SampleList
-
-
-
-### NumericStruct
-
-
-
-### NumericStructList
-
-
-
## Benchmark Results
### Timing Results (nanoseconds)
| 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 |
+| NumericStruct | Serialize | 50.3 | 170.8 | 107.8 |
fory |
+| NumericStruct | Deserialize | 82.4 | 252.0 | 143.4 |
fory |
+| Sample | Serialize | 263.2 | 607.1 | 377.1 |
fory |
+| Sample | Deserialize | 199.4 | 1191.7 | 785.6 |
fory |
+| MediaContent | Serialize | 379.7 | 509.6 | 417.6 |
fory |
+| MediaContent | Deserialize | 450.3 | 846.6 | 791.4 |
fory |
+| NumericStructList | Serialize | 183.7 | 641.8 | 447.8 |
fory |
+| NumericStructList | Deserialize | 288.3 | 974.3 | 702.1 |
fory |
+| SampleList | Serialize | 1205.7 | 3559.1 | 1864.1 |
fory |
+| SampleList | Deserialize | 895.1 | 5710.3 | 2757.4 |
fory |
+| MediaContentList | Serialize | 1495.4 | 2473.6 | 1812.4 |
fory |
+| MediaContentList | Deserialize | 1946.7 | 3789.3 | 3778.4 |
fory |
### Throughput Results (ops/sec)
| 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 |
+| NumericStruct | Serialize | 19,881,457 | 5,853,473 | 9,276,378 |
fory |
+| NumericStruct | Deserialize | 12,137,374 | 3,968,585 | 6,973,504 |
fory |
+| Sample | Serialize | 3,799,418 | 1,647,119 | 2,652,142 |
fory |
+| Sample | Deserialize | 5,016,006 | 839,129 | 1,272,975 |
fory |
+| MediaContent | Serialize | 2,633,704 | 1,962,428 | 2,394,549 |
fory |
+| MediaContent | Deserialize | 2,220,537 | 1,181,222 | 1,263,568 |
fory |
+| NumericStructList | Serialize | 5,445,002 | 1,558,156 | 2,232,996 |
fory |
+| NumericStructList | Deserialize | 3,469,207 | 1,026,402 | 1,424,322 |
fory |
+| SampleList | Serialize | 829,415 | 280,973 | 536,448 |
fory |
+| SampleList | Deserialize | 1,117,133 | 175,122 | 362,663 |
fory |
+| MediaContentList | Serialize | 668,732 | 404,272 | 551,755 |
fory |
+| MediaContentList | Deserialize | 513,699 | 263,899 | 264,664 |
fory |
### Serialized Data Sizes (bytes)
diff --git a/docs/benchmarks/csharp/throughput.png
b/docs/benchmarks/csharp/throughput.png
index 00b97d0984..926ec88f5a 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 47773d2f86..b42cedf85c 100644
--- a/docs/benchmarks/dart/README.md
+++ b/docs/benchmarks/dart/README.md
@@ -2,11 +2,15 @@
This benchmark compares serialization and deserialization throughput for
Apache Fory, Protocol Buffers, and JSON in Dart.
+## Throughput Plot
+
+
+
## Hardware and Runtime Info
| Key | Value
|
| --------------------- |
----------------------------------------------------------------- |
-| Timestamp | 2026-05-07T19:42:18.589207Z
|
+| Timestamp | 2026-05-08T08:23:10.201764Z
|
| OS | Version 15.7.2 (Build 24G325)
|
| Host | MacBook-Pro.local
|
| CPU Cores (Logical) | 12
|
@@ -18,22 +22,20 @@ This benchmark compares serialization and deserialization
throughput for Apache
## Throughput Results
-
-
| 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) |
+| NumericStruct | Serialize | 9,007,809 | 1,582,003 | 774,574 |
fory (5.69x) |
+| NumericStruct | Deserialize | 9,039,403 | 3,343,459 | 1,391,036 |
fory (2.70x) |
+| Sample | Serialize | 2,434,800 | 538,385 | 133,800 |
fory (4.52x) |
+| Sample | Deserialize | 2,362,665 | 909,410 | 239,924 |
fory (2.60x) |
+| MediaContent | Serialize | 1,167,225 | 423,564 | 223,387 |
fory (2.76x) |
+| MediaContent | Deserialize | 1,987,141 | 770,107 | 254,156 |
fory (2.58x) |
+| NumericStructList | Serialize | 2,551,102 | 283,827 | 139,615 |
fory (8.99x) |
+| NumericStructList | Deserialize | 3,028,068 | 530,360 | 265,058 |
fory (5.71x) |
+| SampleList | Serialize | 568,937 | 47,426 | 25,386 |
fory (12.00x) |
+| SampleList | Deserialize | 542,871 | 108,349 | 48,058 |
fory (5.01x) |
+| MediaContentList | Serialize | 226,507 | 81,828 | 41,780 |
fory (2.77x) |
+| MediaContentList | Deserialize | 458,667 | 139,395 | 50,183 |
fory (3.29x) |
## Serialized Size (bytes)
@@ -45,29 +47,3 @@ This benchmark compares serialization and deserialization
throughput for Apache
| NumericStructList | 255 | 475 | 816 |
| SampleList | 1978 | 1900 | 3976 |
| MediaContentList | 1531 | 1550 | 3122 |
-
-## Per-workload Plots
-
-### NumericStruct
-
-
-
-### Sample
-
-
-
-### MediaContent
-
-
-
-### NumericStructList
-
-
-
-### SampleList
-
-
-
-### MediaContentList
-
-
diff --git a/docs/benchmarks/dart/throughput.png
b/docs/benchmarks/dart/throughput.png
index 58abab8da0..b97ee73ff3 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 7403afbd0b..0b08038262 100644
--- a/docs/benchmarks/go/README.md
+++ b/docs/benchmarks/go/README.md
@@ -1,46 +1,50 @@
# Go Serialization Benchmark Report
-Generated: 2026-05-08 03:21:36
+Generated: 2026-05-08 17:27:11
+
+## Performance Chart
+
+
## System Information
- **OS**: Darwin 24.6.0
- **Architecture**: arm64
-- **Python**: 3.9.6
+- **Python**: 3.10.8
## Performance Summary
| 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 |
+| NumericStruct | Serialize | 12.74M | 7.16M | 3.63M
| 1.78x | 3.51x |
+| NumericStruct | Deserialize | 10.63M | 8.40M | 1.78M
| 1.27x | 5.98x |
+| Sample | Serialize | 7.16M | 2.53M | 646K
| 2.84x | 11.10x |
+| Sample | Deserialize | 3.27M | 2.10M | 343K
| 1.56x | 9.54x |
+| MediaContent | Serialize | 3.74M | 1.75M | 1.14M
| 2.14x | 3.27x |
+| MediaContent | Deserialize | 2.03M | 1.23M | 646K
| 1.66x | 3.15x |
+| NumericStructList | Serialize | 1.10M | 386K | 201K
| 2.84x | 5.44x |
+| NumericStructList | Deserialize | 1.09M | 368K | 103K
| 2.96x | 10.54x |
+| SampleList | Serialize | 496K | 126K | 36K
| 3.93x | 13.83x |
+| SampleList | Deserialize | 195K | 96K | 17K
| 2.04x | 11.73x |
+| MediaContentList | Serialize | 250K | 91K | 57K
| 2.73x | 4.38x |
+| MediaContentList | Deserialize | 112K | 74K | 31K
| 1.53x | 3.65x |
## Detailed Timing (ns/op)
| 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 |
+| NumericStruct | Serialize | 78.5 | 139.6 | 275.5 |
+| NumericStruct | Deserialize | 94.0 | 119.0 | 562.5 |
+| Sample | Serialize | 139.6 | 395.9 | 1549.0 |
+| Sample | Deserialize | 306.0 | 475.9 | 2919.0 |
+| MediaContent | Serialize | 267.3 | 571.6 | 875.1 |
+| MediaContent | Deserialize | 492.4 | 815.8 | 1549.0 |
+| NumericStructList | Serialize | 912.8 | 2594.0 | 4970.0 |
+| NumericStructList | Deserialize | 919.9 | 2721.0 | 9698.0 |
+| SampleList | Serialize | 2018.0 | 7927.0 | 27909.0 |
+| SampleList | Deserialize | 5126.0 | 10460.0 | 60118.0 |
+| MediaContentList | Serialize | 4006.0 | 10939.0 | 17553.0 |
+| MediaContentList | Deserialize | 8893.0 | 13588.0 | 32439.0 |
### Serialized Data Sizes (bytes)
@@ -52,33 +56,3 @@ Generated: 2026-05-08 03:21:36
| 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_results.txt
b/docs/benchmarks/go/benchmark_results.txt
index 21aa26e639..9f471bc01f 100644
--- a/docs/benchmarks/go/benchmark_results.txt
+++ b/docs/benchmarks/go/benchmark_results.txt
@@ -2,27 +2,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
============================================
@@ -30,27 +30,27 @@ MediaContentList:
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
============================================
@@ -58,27 +58,27 @@ MediaContentList:
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
============================================
@@ -86,27 +86,27 @@ MediaContentList:
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
============================================
@@ -114,27 +114,27 @@ MediaContentList:
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
============================================
@@ -142,185 +142,185 @@ goos: darwin
goarch: arm64
pkg: github.com/apache/fory/benchmarks/go
cpu: Apple M4 Pro
-BenchmarkFory_Struct_Serialize-12 18441836
65.29 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Struct_Serialize-12 18408471
65.41 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Struct_Serialize-12 17736544
65.19 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Struct_Serialize-12 18385110
65.37 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Struct_Serialize-12 18366690
65.95 ns/op 0 B/op 0 allocs/op
-BenchmarkProtobuf_Struct_Serialize-12 11775620
100.3 ns/op 144 B/op 2 allocs/op
-BenchmarkProtobuf_Struct_Serialize-12 12272547
97.80 ns/op 144 B/op 2 allocs/op
-BenchmarkProtobuf_Struct_Serialize-12 12371797
97.68 ns/op 144 B/op 2 allocs/op
-BenchmarkProtobuf_Struct_Serialize-12 12184240
97.62 ns/op 144 B/op 2 allocs/op
-BenchmarkProtobuf_Struct_Serialize-12 12216723
97.78 ns/op 144 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Serialize-12 7076667
171.4 ns/op 112 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Serialize-12 6900595
173.6 ns/op 112 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Serialize-12 6820158
184.8 ns/op 112 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Serialize-12 6626666
176.1 ns/op 112 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Serialize-12 6930025
184.9 ns/op 112 B/op 2 allocs/op
-BenchmarkFory_Struct_Deserialize-12 12602647
85.48 ns/op 32 B/op 1 allocs/op
-BenchmarkFory_Struct_Deserialize-12 14198599
82.69 ns/op 32 B/op 1 allocs/op
-BenchmarkFory_Struct_Deserialize-12 12750420
85.79 ns/op 32 B/op 1 allocs/op
-BenchmarkFory_Struct_Deserialize-12 13704170
83.80 ns/op 32 B/op 1 allocs/op
-BenchmarkFory_Struct_Deserialize-12 14302634
82.66 ns/op 32 B/op 1 allocs/op
-BenchmarkProtobuf_Struct_Deserialize-12 13726815
87.92 ns/op 80 B/op 1 allocs/op
-BenchmarkProtobuf_Struct_Deserialize-12 13350038
87.81 ns/op 80 B/op 1 allocs/op
-BenchmarkProtobuf_Struct_Deserialize-12 13771383
88.75 ns/op 80 B/op 1 allocs/op
-BenchmarkProtobuf_Struct_Deserialize-12 13840743
90.58 ns/op 80 B/op 1 allocs/op
-BenchmarkProtobuf_Struct_Deserialize-12 13009616
90.86 ns/op 80 B/op 1 allocs/op
-BenchmarkMsgpack_Struct_Deserialize-12 3796537
304.3 ns/op 80 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Deserialize-12 3963567
305.9 ns/op 80 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Deserialize-12 3949239
305.3 ns/op 80 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Deserialize-12 3842962
307.7 ns/op 80 B/op 2 allocs/op
-BenchmarkMsgpack_Struct_Deserialize-12 3946874
309.6 ns/op 80 B/op 2 allocs/op
-BenchmarkFory_StructList_Serialize-12 1887151
654.7 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_StructList_Serialize-12 1836488
635.3 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_StructList_Serialize-12 1863346
647.0 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_StructList_Serialize-12 1913204
627.8 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_StructList_Serialize-12 1887578
632.8 ns/op 0 B/op 0 allocs/op
-BenchmarkProtobuf_StructList_Serialize-12 664448
1773 ns/op 3104 B/op 23 allocs/op
-BenchmarkProtobuf_StructList_Serialize-12 684133
1794 ns/op 3104 B/op 23 allocs/op
-BenchmarkProtobuf_StructList_Serialize-12 642586
1784 ns/op 3104 B/op 23 allocs/op
-BenchmarkProtobuf_StructList_Serialize-12 674518
1768 ns/op 3104 B/op 23 allocs/op
-BenchmarkProtobuf_StructList_Serialize-12 668338
1783 ns/op 3104 B/op 23 allocs/op
-BenchmarkMsgpack_StructList_Serialize-12 350497
3433 ns/op 4106 B/op 8 allocs/op
-BenchmarkMsgpack_StructList_Serialize-12 351436
3409 ns/op 4106 B/op 8 allocs/op
-BenchmarkMsgpack_StructList_Serialize-12 344049
3398 ns/op 4106 B/op 8 allocs/op
-BenchmarkMsgpack_StructList_Serialize-12 357286
3361 ns/op 4106 B/op 8 allocs/op
-BenchmarkMsgpack_StructList_Serialize-12 358231
3340 ns/op 4106 B/op 8 allocs/op
-BenchmarkFory_StructList_Deserialize-12 1335152
901.9 ns/op 688 B/op 3 allocs/op
-BenchmarkFory_StructList_Deserialize-12 1295712
878.2 ns/op 688 B/op 3 allocs/op
-BenchmarkFory_StructList_Deserialize-12 1351540
889.7 ns/op 688 B/op 3 allocs/op
-BenchmarkFory_StructList_Deserialize-12 1327351
896.7 ns/op 688 B/op 3 allocs/op
-BenchmarkFory_StructList_Deserialize-12 1326216
906.4 ns/op 688 B/op 3 allocs/op
-BenchmarkProtobuf_StructList_Deserialize-12 618871
1914 ns/op 2808 B/op 28 allocs/op
-BenchmarkProtobuf_StructList_Deserialize-12 552850
1867 ns/op 2808 B/op 28 allocs/op
-BenchmarkProtobuf_StructList_Deserialize-12 621386
1887 ns/op 2808 B/op 28 allocs/op
-BenchmarkProtobuf_StructList_Deserialize-12 626301
1916 ns/op 2808 B/op 28 allocs/op
-BenchmarkProtobuf_StructList_Deserialize-12 619466
1891 ns/op 2808 B/op 28 allocs/op
-BenchmarkMsgpack_StructList_Deserialize-12 209462
5707 ns/op 1424 B/op 7 allocs/op
-BenchmarkMsgpack_StructList_Deserialize-12 205341
5680 ns/op 1424 B/op 7 allocs/op
-BenchmarkMsgpack_StructList_Deserialize-12 212827
5715 ns/op 1424 B/op 7 allocs/op
-BenchmarkMsgpack_StructList_Deserialize-12 212240
5742 ns/op 1424 B/op 7 allocs/op
-BenchmarkMsgpack_StructList_Deserialize-12 214522
5709 ns/op 1424 B/op 7 allocs/op
-BenchmarkFory_Sample_Serialize-12 8722086
137.8 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Sample_Serialize-12 8074246
137.2 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Sample_Serialize-12 8734982
137.3 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Sample_Serialize-12 8774318
137.3 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_Sample_Serialize-12 8791104
137.3 ns/op 0 B/op 0 allocs/op
-BenchmarkProtobuf_Sample_Serialize-12 3474804
339.3 ns/op 704 B/op 2 allocs/op
-BenchmarkProtobuf_Sample_Serialize-12 3353059
350.9 ns/op 704 B/op 2 allocs/op
-BenchmarkProtobuf_Sample_Serialize-12 3485572
359.7 ns/op 704 B/op 2 allocs/op
-BenchmarkProtobuf_Sample_Serialize-12 3293542
364.4 ns/op 704 B/op 2 allocs/op
-BenchmarkProtobuf_Sample_Serialize-12 3304266
367.3 ns/op 704 B/op 2 allocs/op
-BenchmarkMsgpack_Sample_Serialize-12 815510
1454 ns/op 2321 B/op 7 allocs/op
-BenchmarkMsgpack_Sample_Serialize-12 814988
1474 ns/op 2321 B/op 7 allocs/op
-BenchmarkMsgpack_Sample_Serialize-12 819774
1441 ns/op 2321 B/op 7 allocs/op
-BenchmarkMsgpack_Sample_Serialize-12 806146
1448 ns/op 2321 B/op 7 allocs/op
-BenchmarkMsgpack_Sample_Serialize-12 806767
1492 ns/op 2321 B/op 7 allocs/op
-BenchmarkFory_Sample_Deserialize-12 4371154
260.9 ns/op 676 B/op 9 allocs/op
-BenchmarkFory_Sample_Deserialize-12 4748262
256.2 ns/op 676 B/op 9 allocs/op
-BenchmarkFory_Sample_Deserialize-12 4563691
259.0 ns/op 676 B/op 9 allocs/op
-BenchmarkFory_Sample_Deserialize-12 4679144
257.7 ns/op 676 B/op 9 allocs/op
-BenchmarkFory_Sample_Deserialize-12 4577006
263.6 ns/op 676 B/op 9 allocs/op
-BenchmarkProtobuf_Sample_Deserialize-12 2827587
426.9 ns/op 708 B/op 9 allocs/op
-BenchmarkProtobuf_Sample_Deserialize-12 2790972
424.5 ns/op 708 B/op 9 allocs/op
-BenchmarkProtobuf_Sample_Deserialize-12 2761682
436.8 ns/op 708 B/op 9 allocs/op
-BenchmarkProtobuf_Sample_Deserialize-12 2730283
432.4 ns/op 708 B/op 9 allocs/op
-BenchmarkProtobuf_Sample_Deserialize-12 2829603
422.2 ns/op 708 B/op 9 allocs/op
-BenchmarkMsgpack_Sample_Deserialize-12 445099
2801 ns/op 1576 B/op 38 allocs/op
-BenchmarkMsgpack_Sample_Deserialize-12 437914
2686 ns/op 1576 B/op 38 allocs/op
-BenchmarkMsgpack_Sample_Deserialize-12 416235
2660 ns/op 1576 B/op 38 allocs/op
-BenchmarkMsgpack_Sample_Deserialize-12 448528
2650 ns/op 1576 B/op 38 allocs/op
-BenchmarkMsgpack_Sample_Deserialize-12 447135
2661 ns/op 1576 B/op 38 allocs/op
-BenchmarkFory_SampleList_Serialize-12 609176
1948 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_SampleList_Serialize-12 612290
1958 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_SampleList_Serialize-12 605318
1950 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_SampleList_Serialize-12 610993
1945 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_SampleList_Serialize-12 612297
1962 ns/op 0 B/op 0 allocs/op
-BenchmarkProtobuf_SampleList_Serialize-12 167353
6748 ns/op 14816 B/op 23 allocs/op
-BenchmarkProtobuf_SampleList_Serialize-12 170196
6906 ns/op 14816 B/op 23 allocs/op
-BenchmarkProtobuf_SampleList_Serialize-12 170259
7246 ns/op 14816 B/op 23 allocs/op
-BenchmarkProtobuf_SampleList_Serialize-12 170742
7127 ns/op 14816 B/op 23 allocs/op
-BenchmarkProtobuf_SampleList_Serialize-12 167684
7087 ns/op 14816 B/op 23 allocs/op
-BenchmarkMsgpack_SampleList_Serialize-12 46962
25632 ns/op 32793 B/op 11 allocs/op
-BenchmarkMsgpack_SampleList_Serialize-12 47451
25432 ns/op 32793 B/op 11 allocs/op
-BenchmarkMsgpack_SampleList_Serialize-12 44647
26471 ns/op 32793 B/op 11 allocs/op
-BenchmarkMsgpack_SampleList_Serialize-12 46993
25869 ns/op 32793 B/op 11 allocs/op
-BenchmarkMsgpack_SampleList_Serialize-12 46513
26169 ns/op 32792 B/op 11 allocs/op
-BenchmarkFory_SampleList_Deserialize-12 269730
4251 ns/op 13952 B/op 163 allocs/op
-BenchmarkFory_SampleList_Deserialize-12 287401
4202 ns/op 13952 B/op 163 allocs/op
-BenchmarkFory_SampleList_Deserialize-12 283461
4176 ns/op 13952 B/op 163 allocs/op
-BenchmarkFory_SampleList_Deserialize-12 278598
4257 ns/op 13952 B/op 163 allocs/op
-BenchmarkFory_SampleList_Deserialize-12 285021
4234 ns/op 13952 B/op 163 allocs/op
-BenchmarkProtobuf_SampleList_Deserialize-12 130734
9285 ns/op 20872 B/op 188 allocs/op
-BenchmarkProtobuf_SampleList_Deserialize-12 132328
9157 ns/op 20872 B/op 188 allocs/op
-BenchmarkProtobuf_SampleList_Deserialize-12 132595
9258 ns/op 20872 B/op 188 allocs/op
-BenchmarkProtobuf_SampleList_Deserialize-12 128911
9332 ns/op 20872 B/op 188 allocs/op
-BenchmarkProtobuf_SampleList_Deserialize-12 124810
9321 ns/op 20872 B/op 188 allocs/op
-BenchmarkMsgpack_SampleList_Deserialize-12 22225
53384 ns/op 37251 B/op 727 allocs/op
-BenchmarkMsgpack_SampleList_Deserialize-12 22498
54968 ns/op 37251 B/op 727 allocs/op
-BenchmarkMsgpack_SampleList_Deserialize-12 21262
54571 ns/op 37251 B/op 727 allocs/op
-BenchmarkMsgpack_SampleList_Deserialize-12 21877
54363 ns/op 37251 B/op 727 allocs/op
-BenchmarkMsgpack_SampleList_Deserialize-12 21978
53615 ns/op 37251 B/op 727 allocs/op
-BenchmarkFory_MediaContent_Serialize-12 4530111
265.7 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContent_Serialize-12 4538586
267.6 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContent_Serialize-12 4477569
264.6 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContent_Serialize-12 4504632
270.4 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContent_Serialize-12 4519728
268.8 ns/op 0 B/op 0 allocs/op
-BenchmarkProtobuf_MediaContent_Serialize-12 2446335
486.8 ns/op 1144 B/op 11 allocs/op
-BenchmarkProtobuf_MediaContent_Serialize-12 2468845
489.5 ns/op 1144 B/op 11 allocs/op
-BenchmarkProtobuf_MediaContent_Serialize-12 2463714
468.9 ns/op 1144 B/op 11 allocs/op
-BenchmarkProtobuf_MediaContent_Serialize-12 2605141
467.7 ns/op 1144 B/op 11 allocs/op
-BenchmarkProtobuf_MediaContent_Serialize-12 2586032
471.1 ns/op 1144 B/op 11 allocs/op
-BenchmarkMsgpack_MediaContent_Serialize-12 1496350
787.2 ns/op 1168 B/op 6 allocs/op
-BenchmarkMsgpack_MediaContent_Serialize-12 1533099
794.6 ns/op 1168 B/op 6 allocs/op
-BenchmarkMsgpack_MediaContent_Serialize-12 1533223
786.9 ns/op 1168 B/op 6 allocs/op
-BenchmarkMsgpack_MediaContent_Serialize-12 1558996
778.9 ns/op 1168 B/op 6 allocs/op
-BenchmarkMsgpack_MediaContent_Serialize-12 1535682
773.7 ns/op 1168 B/op 6 allocs/op
-BenchmarkFory_MediaContent_Deserialize-12 2840757
421.6 ns/op 656 B/op 13 allocs/op
-BenchmarkFory_MediaContent_Deserialize-12 2805544
429.2 ns/op 656 B/op 13 allocs/op
-BenchmarkFory_MediaContent_Deserialize-12 2819227
433.5 ns/op 656 B/op 13 allocs/op
-BenchmarkFory_MediaContent_Deserialize-12 2805493
426.6 ns/op 656 B/op 13 allocs/op
-BenchmarkFory_MediaContent_Deserialize-12 2828582
426.9 ns/op 656 B/op 13 allocs/op
-BenchmarkProtobuf_MediaContent_Deserialize-12 2141352
569.0 ns/op 1088 B/op 21 allocs/op
-BenchmarkProtobuf_MediaContent_Deserialize-12 2052590
559.8 ns/op 1088 B/op 21 allocs/op
-BenchmarkProtobuf_MediaContent_Deserialize-12 2134398
550.8 ns/op 1088 B/op 21 allocs/op
-BenchmarkProtobuf_MediaContent_Deserialize-12 2151742
567.4 ns/op 1088 B/op 21 allocs/op
-BenchmarkProtobuf_MediaContent_Deserialize-12 2155804
553.1 ns/op 1088 B/op 21 allocs/op
-BenchmarkMsgpack_MediaContent_Deserialize-12 838147
1376 ns/op 896 B/op 17 allocs/op
-BenchmarkMsgpack_MediaContent_Deserialize-12 824925
1392 ns/op 896 B/op 17 allocs/op
-BenchmarkMsgpack_MediaContent_Deserialize-12 814362
1414 ns/op 896 B/op 17 allocs/op
-BenchmarkMsgpack_MediaContent_Deserialize-12 837973
1399 ns/op 896 B/op 17 allocs/op
-BenchmarkMsgpack_MediaContent_Deserialize-12 850816
1432 ns/op 896 B/op 17 allocs/op
-BenchmarkFory_MediaContentList_Serialize-12 320854
3724 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContentList_Serialize-12 323788
3725 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContentList_Serialize-12 323928
3688 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContentList_Serialize-12 320772
3652 ns/op 0 B/op 0 allocs/op
-BenchmarkFory_MediaContentList_Serialize-12 325976
3736 ns/op 0 B/op 0 allocs/op
-BenchmarkProtobuf_MediaContentList_Serialize-12 128820
9015 ns/op 22848 B/op 203 allocs/op
-BenchmarkProtobuf_MediaContentList_Serialize-12 133196
9049 ns/op 22848 B/op 203 allocs/op
-BenchmarkProtobuf_MediaContentList_Serialize-12 133237
9152 ns/op 22848 B/op 203 allocs/op
-BenchmarkProtobuf_MediaContentList_Serialize-12 131954
8952 ns/op 22848 B/op 203 allocs/op
-BenchmarkProtobuf_MediaContentList_Serialize-12 132843
9107 ns/op 22848 B/op 203 allocs/op
-BenchmarkMsgpack_MediaContentList_Serialize-12 86242
13984 ns/op 16880 B/op 30 allocs/op
-BenchmarkMsgpack_MediaContentList_Serialize-12 84384
14032 ns/op 16880 B/op 30 allocs/op
-BenchmarkMsgpack_MediaContentList_Serialize-12 83804
14321 ns/op 16880 B/op 30 allocs/op
-BenchmarkMsgpack_MediaContentList_Serialize-12 87357
14185 ns/op 16880 B/op 30 allocs/op
-BenchmarkMsgpack_MediaContentList_Serialize-12 85074
13911 ns/op 16880 B/op 30 allocs/op
-BenchmarkFory_MediaContentList_Deserialize-12 158547
7564 ns/op 13040 B/op 243 allocs/op
-BenchmarkFory_MediaContentList_Deserialize-12 159993
7508 ns/op 13040 B/op 243 allocs/op
-BenchmarkFory_MediaContentList_Deserialize-12 159046
7447 ns/op 13040 B/op 243 allocs/op
-BenchmarkFory_MediaContentList_Deserialize-12 163632
7268 ns/op 13040 B/op 243 allocs/op
-BenchmarkFory_MediaContentList_Deserialize-12 163434
7247 ns/op 13040 B/op 243 allocs/op
-BenchmarkProtobuf_MediaContentList_Deserialize-12 92965
11322 ns/op 25400 B/op 428 allocs/op
-BenchmarkProtobuf_MediaContentList_Deserialize-12 105206
11297 ns/op 25400 B/op 428 allocs/op
-BenchmarkProtobuf_MediaContentList_Deserialize-12 104979
11205 ns/op 25400 B/op 428 allocs/op
-BenchmarkProtobuf_MediaContentList_Deserialize-12 105859
11327 ns/op 25400 B/op 428 allocs/op
-BenchmarkProtobuf_MediaContentList_Deserialize-12 105524
11435 ns/op 25400 B/op 428 allocs/op
-BenchmarkMsgpack_MediaContentList_Deserialize-12 43263
27244 ns/op 20058 B/op 307 allocs/op
-BenchmarkMsgpack_MediaContentList_Deserialize-12 44388
27167 ns/op 20058 B/op 307 allocs/op
-BenchmarkMsgpack_MediaContentList_Deserialize-12 44185
27271 ns/op 20058 B/op 307 allocs/op
-BenchmarkMsgpack_MediaContentList_Deserialize-12 43345
27499 ns/op 20058 B/op 307 allocs/op
-BenchmarkMsgpack_MediaContentList_Deserialize-12 43718
27975 ns/op 20058 B/op 307 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12 15385461
78.49 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12 14953550
78.78 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12 15520209
76.33 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12 15806354
76.43 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12 15314667
78.51 ns/op 0 B/op 0 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12 8704411
138.0 ns/op 192 B/op 2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12 8522941
138.8 ns/op 192 B/op 2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12 8285118
138.9 ns/op 192 B/op 2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12 8818959
139.6 ns/op 192 B/op 2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12 8463876
139.6 ns/op 192 B/op 2 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12 4396588
274.9 ns/op 240 B/op 3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12 4438035
272.7 ns/op 240 B/op 3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12 4352302
272.0 ns/op 240 B/op 3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12 4346308
277.3 ns/op 240 B/op 3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12 4361384
275.5 ns/op 240 B/op 3 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12 12784374
95.10 ns/op 48 B/op 1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12 12615007
94.35 ns/op 48 B/op 1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12 12597256
94.07 ns/op 48 B/op 1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12 12663748
93.35 ns/op 48 B/op 1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12 12668444
94.05 ns/op 48 B/op 1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12 9892239
157.3 ns/op 96 B/op 1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12 6950502
152.1 ns/op 96 B/op 1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12 7466115
210.2 ns/op 96 B/op 1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12 6987369
156.1 ns/op 96 B/op 1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12 10052640
119.0 ns/op 96 B/op 1 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12 2397518
502.5 ns/op 96 B/op 2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12 2379376
501.1 ns/op 96 B/op 2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12 2390596
500.8 ns/op 96 B/op 2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12 2387790
504.9 ns/op 96 B/op 2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12 2404051
562.5 ns/op 96 B/op 2 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12 1000000
1081 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12 1000000
1021 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12 1293205
947.2 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12 1278226
929.6 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12 1316396
912.8 ns/op 0 B/op 0 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12 467838
2594 ns/op 4192 B/op 23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12 462572
2743 ns/op 4192 B/op 23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12 453700
2589 ns/op 4192 B/op 23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12 460408
2607 ns/op 4192 B/op 23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12 452139
2594 ns/op 4192 B/op 23 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12 247603
4879 ns/op 4106 B/op 8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12 249087
4844 ns/op 4106 B/op 8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12 248340
5142 ns/op 4106 B/op 8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12 206158
5846 ns/op 4106 B/op 8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12 238311
4970 ns/op 4106 B/op 8 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12 1311939
932.1 ns/op 1072 B/op 3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12 1313912
937.1 ns/op 1072 B/op 3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12 1315593
915.4 ns/op 1072 B/op 3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12 1311540
927.6 ns/op 1072 B/op 3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12 1292565
919.9 ns/op 1072 B/op 3 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12 447052
2745 ns/op 3512 B/op 28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12 429406
2743 ns/op 3512 B/op 28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12 438819
2706 ns/op 3512 B/op 28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12 447928
2785 ns/op 3512 B/op 28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12 447502
2721 ns/op 3512 B/op 28 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12 122101
9764 ns/op 2193 B/op 7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12 123258
9896 ns/op 2193 B/op 7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12 121612
9738 ns/op 2193 B/op 7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12 124760
9670 ns/op 2193 B/op 7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12 125086
9698 ns/op 2193 B/op 7 allocs/op
+BenchmarkFory_Sample_Serialize-12 8696760
147.5 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_Sample_Serialize-12 8567470
181.8 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_Sample_Serialize-12 8293867
139.5 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_Sample_Serialize-12 8486005
140.6 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_Sample_Serialize-12 8506568
139.6 ns/op 0 B/op 0 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12 3011733
387.9 ns/op 704 B/op 2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12 3108796
390.8 ns/op 704 B/op 2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12 2547630
393.6 ns/op 704 B/op 2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12 3026661
392.1 ns/op 704 B/op 2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12 3128582
395.9 ns/op 704 B/op 2 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12 777014
1553 ns/op 2321 B/op 7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12 775314
1520 ns/op 2321 B/op 7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12 757838
1525 ns/op 2321 B/op 7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12 802612
1757 ns/op 2321 B/op 7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12 790094
1549 ns/op 2321 B/op 7 allocs/op
+BenchmarkFory_Sample_Deserialize-12 4167534
327.9 ns/op 676 B/op 9 allocs/op
+BenchmarkFory_Sample_Deserialize-12 3184602
338.0 ns/op 676 B/op 9 allocs/op
+BenchmarkFory_Sample_Deserialize-12 3629605
301.8 ns/op 676 B/op 9 allocs/op
+BenchmarkFory_Sample_Deserialize-12 4008093
302.2 ns/op 676 B/op 9 allocs/op
+BenchmarkFory_Sample_Deserialize-12 3992972
306.0 ns/op 676 B/op 9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12 2527548
477.1 ns/op 708 B/op 9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12 2476074
474.8 ns/op 708 B/op 9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12 2532358
475.8 ns/op 708 B/op 9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12 2408528
473.0 ns/op 708 B/op 9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12 2482132
475.9 ns/op 708 B/op 9 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12 415698
2893 ns/op 1576 B/op 38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12 417212
2950 ns/op 1576 B/op 38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12 424497
2879 ns/op 1576 B/op 38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12 417026
2953 ns/op 1576 B/op 38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12 418338
2919 ns/op 1576 B/op 38 allocs/op
+BenchmarkFory_SampleList_Serialize-12 599605
2041 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_SampleList_Serialize-12 582406
2046 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_SampleList_Serialize-12 563160
2029 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_SampleList_Serialize-12 607074
2067 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_SampleList_Serialize-12 613364
2018 ns/op 0 B/op 0 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12 145861
8291 ns/op 14816 B/op 23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12 150979
7938 ns/op 14816 B/op 23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12 144135
8049 ns/op 14816 B/op 23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12 149202
8469 ns/op 14816 B/op 23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12 152338
7927 ns/op 14816 B/op 23 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12 43825
27705 ns/op 32793 B/op 11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12 43051
29707 ns/op 32793 B/op 11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12 42046
27699 ns/op 32793 B/op 11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12 42596
37501 ns/op 32793 B/op 11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12 42518
27909 ns/op 32793 B/op 11 allocs/op
+BenchmarkFory_SampleList_Deserialize-12 249300
4817 ns/op 13952 B/op 163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12 245127
5156 ns/op 13952 B/op 163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12 247790
4943 ns/op 13952 B/op 163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12 249534
4934 ns/op 13952 B/op 163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12 239244
5126 ns/op 13952 B/op 163 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12 111327
10797 ns/op 20872 B/op 188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12 109178
10919 ns/op 20872 B/op 188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12 92876
12674 ns/op 20872 B/op 188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12 108414
10816 ns/op 20872 B/op 188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12 114196
10460 ns/op 20872 B/op 188 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12 20566
58400 ns/op 37251 B/op 727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12 20526
65792 ns/op 37251 B/op 727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12 20550
58213 ns/op 37251 B/op 727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12 19180
58170 ns/op 37251 B/op 727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12 20426
60118 ns/op 37251 B/op 727 allocs/op
+BenchmarkFory_MediaContent_Serialize-12 4481811
268.2 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContent_Serialize-12 4470292
269.4 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContent_Serialize-12 4524715
269.0 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContent_Serialize-12 4516789
270.0 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContent_Serialize-12 4391221
267.3 ns/op 0 B/op 0 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12 2135143
544.6 ns/op 1144 B/op 11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12 2160157
561.0 ns/op 1144 B/op 11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12 2221641
545.3 ns/op 1144 B/op 11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12 2214582
565.7 ns/op 1144 B/op 11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12 2115079
571.6 ns/op 1144 B/op 11 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12 1380163
869.0 ns/op 1168 B/op 6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12 1380481
874.4 ns/op 1168 B/op 6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12 1369536
873.7 ns/op 1168 B/op 6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12 1376877
881.8 ns/op 1168 B/op 6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12 1381296
875.1 ns/op 1168 B/op 6 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12 2537758
474.9 ns/op 656 B/op 13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12 2491048
478.2 ns/op 656 B/op 13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12 2500486
520.6 ns/op 656 B/op 13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12 2419058
495.7 ns/op 656 B/op 13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12 2404918
492.4 ns/op 656 B/op 13 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12 1852849
647.5 ns/op 1088 B/op 21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12 1865282
638.1 ns/op 1088 B/op 21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12 1873513
649.3 ns/op 1088 B/op 21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12 1853527
635.6 ns/op 1088 B/op 21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12 1729706
815.8 ns/op 1088 B/op 21 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12 801156
1553 ns/op 896 B/op 17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12 787426
1520 ns/op 896 B/op 17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12 750510
1538 ns/op 896 B/op 17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12 803448
1543 ns/op 896 B/op 17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12 780190
1549 ns/op 896 B/op 17 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12 304236
4158 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12 300002
4008 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12 301590
4026 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12 304356
3955 ns/op 0 B/op 0 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12 305937
4006 ns/op 0 B/op 0 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12 113460
10919 ns/op 22848 B/op 203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12 105204
12060 ns/op 22848 B/op 203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12 112503
10890 ns/op 22848 B/op 203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12 110593
10468 ns/op 22848 B/op 203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12 112423
10939 ns/op 22848 B/op 203 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12 77541
15641 ns/op 16881 B/op 30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12 77178
16293 ns/op 16880 B/op 30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12 73228
16168 ns/op 16880 B/op 30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12 71780
16275 ns/op 16880 B/op 30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12 77145
17553 ns/op 16881 B/op 30 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12 146653
8254 ns/op 13040 B/op 243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12 145420
8133 ns/op 13040 B/op 243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12 148918
8145 ns/op 13040 B/op 243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12 141998
8498 ns/op 13040 B/op 243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12 138174
8893 ns/op 13040 B/op 243 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12 90056
13521 ns/op 25400 B/op 428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12 82902
13638 ns/op 25400 B/op 428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12 91242
14083 ns/op 25400 B/op 428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12 85706
13089 ns/op 25400 B/op 428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12 91342
13588 ns/op 25400 B/op 428 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12 33295
31198 ns/op 20058 B/op 307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12 40077
31423 ns/op 20058 B/op 307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12 39219
30604 ns/op 20058 B/op 307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12 39799
30377 ns/op 20058 B/op 307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12 39267
32439 ns/op 20058 B/op 307 allocs/op
PASS
-ok github.com/apache/fory/benchmarks/go 256.707s
+ok github.com/apache/fory/benchmarks/go 268.327s
diff --git a/docs/benchmarks/go/throughput.png
b/docs/benchmarks/go/throughput.png
index f7104d7d9c..6cc809d476 100644
Binary files a/docs/benchmarks/go/throughput.png and
b/docs/benchmarks/go/throughput.png differ
diff --git a/docs/benchmarks/java/README.md b/docs/benchmarks/java/README.md
index f3c6badb31..faed233646 100644
--- a/docs/benchmarks/java/README.md
+++ b/docs/benchmarks/java/README.md
@@ -240,28 +240,28 @@ But if you serialize data between processes on same node
and use shared-memory,
## 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/`.
+Run from `benchmarks/java/run.sh`. Raw JMH JSON stays under the ignored local
`benchmarks/java/reports/` directory; `throughput.png` and this xlang section
are synced into `docs/benchmarks/java/`.
```bash
cd benchmarks/java
-./run.sh --output-dir ../../docs/benchmarks/java
+./run.sh
```
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 |
+| Data type | Operation | Fory ops/sec | Protobuf ops/sec |
Flatbuffer ops/sec | Fastest |
+| ----------------- | ----------- | ------------ | ---------------- |
------------------ | ------- |
+| NumericStruct | Serialize | 46,787,647 | 33,024,161 |
9,612,018 | Fory |
+| NumericStruct | Deserialize | 71,683,707 | 29,837,931 |
40,514,436 | Fory |
+| Sample | Serialize | 17,406,902 | 2,071,963 |
3,153,672 | Fory |
+| Sample | Deserialize | 17,772,123 | 1,867,967 |
4,179,494 | Fory |
+| MediaContent | Serialize | 10,783,325 | 1,781,338 |
1,444,737 | Fory |
+| MediaContent | Deserialize | 7,950,203 | 2,184,597 |
3,453,985 | Fory |
+| NumericStructList | Serialize | 21,263,673 | 2,511,081 |
3,047,836 | Fory |
+| NumericStructList | Deserialize | 19,249,877 | 2,067,204 |
8,168,569 | Fory |
+| SampleList | Serialize | 4,580,165 | 401,280 | 696,268
| Fory |
+| SampleList | Deserialize | 3,811,985 | 344,945 | 773,625
| Fory |
+| MediaContentList | Serialize | 1,657,717 | 353,717 | 296,868
| Fory |
+| MediaContentList | Deserialize | 1,111,043 | 435,956 | 516,192
| Fory |
diff --git a/docs/benchmarks/java/java_heap_deserialize_compatible.png
b/docs/benchmarks/java/java_heap_deserialize_compatible.png
index 1f65fe0f7d..52dd292a3c 100644
Binary files a/docs/benchmarks/java/java_heap_deserialize_compatible.png and
b/docs/benchmarks/java/java_heap_deserialize_compatible.png differ
diff --git a/docs/benchmarks/java/java_heap_deserialize_consistent.png
b/docs/benchmarks/java/java_heap_deserialize_consistent.png
index 4155f8b624..a21445421a 100644
Binary files a/docs/benchmarks/java/java_heap_deserialize_consistent.png and
b/docs/benchmarks/java/java_heap_deserialize_consistent.png differ
diff --git a/docs/benchmarks/java/java_heap_serialize_compatible.png
b/docs/benchmarks/java/java_heap_serialize_compatible.png
index edc19b6e00..2142dfdbab 100644
Binary files a/docs/benchmarks/java/java_heap_serialize_compatible.png and
b/docs/benchmarks/java/java_heap_serialize_compatible.png differ
diff --git a/docs/benchmarks/java/java_heap_serialize_consistent.png
b/docs/benchmarks/java/java_heap_serialize_consistent.png
index 5d88e2e96f..5703f72473 100644
Binary files a/docs/benchmarks/java/java_heap_serialize_consistent.png and
b/docs/benchmarks/java/java_heap_serialize_consistent.png differ
diff --git a/docs/benchmarks/java/java_offheap_deserialize_compatible.png
b/docs/benchmarks/java/java_offheap_deserialize_compatible.png
index 386091a217..ce77bf6fb7 100644
Binary files a/docs/benchmarks/java/java_offheap_deserialize_compatible.png and
b/docs/benchmarks/java/java_offheap_deserialize_compatible.png differ
diff --git a/docs/benchmarks/java/java_offheap_deserialize_consistent.png
b/docs/benchmarks/java/java_offheap_deserialize_consistent.png
index 079ec78cae..04c3e3d04a 100644
Binary files a/docs/benchmarks/java/java_offheap_deserialize_consistent.png and
b/docs/benchmarks/java/java_offheap_deserialize_consistent.png differ
diff --git a/docs/benchmarks/java/java_offheap_serialize_compatible.png
b/docs/benchmarks/java/java_offheap_serialize_compatible.png
index 7e83e3efb7..8d9197121c 100644
Binary files a/docs/benchmarks/java/java_offheap_serialize_compatible.png and
b/docs/benchmarks/java/java_offheap_serialize_compatible.png differ
diff --git a/docs/benchmarks/java/java_offheap_serialize_consistent.png
b/docs/benchmarks/java/java_offheap_serialize_consistent.png
index 49f6602f86..8bdea8f559 100644
Binary files a/docs/benchmarks/java/java_offheap_serialize_consistent.png and
b/docs/benchmarks/java/java_offheap_serialize_consistent.png differ
diff --git a/docs/benchmarks/java/java_repo_deserialization_throughput.png
b/docs/benchmarks/java/java_repo_deserialization_throughput.png
index 9ea114a36f..d64f5e77a1 100644
Binary files a/docs/benchmarks/java/java_repo_deserialization_throughput.png
and b/docs/benchmarks/java/java_repo_deserialization_throughput.png differ
diff --git a/docs/benchmarks/java/java_repo_serialization_throughput.png
b/docs/benchmarks/java/java_repo_serialization_throughput.png
index 83edd359c9..8f9824ffe1 100644
Binary files a/docs/benchmarks/java/java_repo_serialization_throughput.png and
b/docs/benchmarks/java/java_repo_serialization_throughput.png differ
diff --git a/docs/benchmarks/java/java_zero_copy_deserialize.png
b/docs/benchmarks/java/java_zero_copy_deserialize.png
index da83fefcd3..a91315eb34 100644
Binary files a/docs/benchmarks/java/java_zero_copy_deserialize.png and
b/docs/benchmarks/java/java_zero_copy_deserialize.png differ
diff --git a/docs/benchmarks/java/java_zero_copy_serialize.png
b/docs/benchmarks/java/java_zero_copy_serialize.png
index ea719dc9bf..a3f1b98346 100644
Binary files a/docs/benchmarks/java/java_zero_copy_serialize.png and
b/docs/benchmarks/java/java_zero_copy_serialize.png differ
diff --git a/docs/benchmarks/java/throughput.png
b/docs/benchmarks/java/throughput.png
index b49d9721b1..f0aad29a7d 100644
Binary files a/docs/benchmarks/java/throughput.png and
b/docs/benchmarks/java/throughput.png differ
diff --git a/docs/benchmarks/javascript/README.md
b/docs/benchmarks/javascript/README.md
index bb0691efe9..5846d44a18 100644
--- a/docs/benchmarks/javascript/README.md
+++ b/docs/benchmarks/javascript/README.md
@@ -1,6 +1,6 @@
# JavaScript Benchmark Performance Report
-_Generated on 2026-05-08 11:29:18_
+_Generated on 2026-05-08 17:27:11_
## How to Generate This Report
@@ -13,6 +13,12 @@ cd benchmarks/javascript
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.
+## Benchmark Plot
+
+The plot shows throughput (ops/sec); higher is better.
+
+
+
## Hardware & OS Info
| Key | Value |
@@ -23,78 +29,46 @@ The timed serializer loops use serializer-native typed
values. Fory receives the
| CPU Cores (Physical) | 12 |
| CPU Cores (Logical) | 12 |
| Total RAM (GB) | 48.0 |
-| Benchmark Date | 2026-05-08T03:27:27.670Z |
+| Benchmark Date | 2026-05-08T08:07:36.073Z |
| CPU Cores (from benchmark) | 12 |
-| Node.js | v25.8.1 |
-| V8 | 14.1.146.11-node.21 |
-
-## Benchmark Plots
-
-All class-level plots below show throughput (ops/sec).
-
-### Throughput
-
-
-
-### MediaContent
-
-
-
-### MediaContentList
-
-
-
-### Sample
-
-
-
-### SampleList
-
-
-
-### NumericStruct
-
-
-
-### NumericStructList
-
-
+| Node.js | v22.20.0 |
+| V8 | 12.4.254.21-node.33 |
## Benchmark Results
### Timing Results (nanoseconds)
-| 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 |
+| Datatype | Operation | fory (ns) | protobuf (ns) | json (ns) |
Fastest |
+| ----------------- | ----------- | --------- | ------------- | --------- |
-------- |
+| NumericStruct | Serialize | 76.0 | 613.0 | 496.0 |
fory |
+| NumericStruct | Deserialize | 56.9 | 94.8 | 333.0 |
fory |
+| Sample | Serialize | 318.0 | 2016.6 | 1409.3 |
fory |
+| Sample | Deserialize | 496.0 | 902.5 | 1609.6 |
fory |
+| MediaContent | Serialize | 494.1 | 1358.5 | 803.5 |
fory |
+| MediaContent | Deserialize | 539.3 | 628.3 | 1134.3 |
fory |
+| NumericStructList | Serialize | 195.3 | 3019.3 | 2013.5 |
fory |
+| NumericStructList | Deserialize | 183.7 | 606.9 | 1944.0 |
fory |
+| SampleList | Serialize | 1681.9 | 19346.7 | 11870.3 |
fory |
+| SampleList | Deserialize | 2571.9 | 5730.6 | 9074.5 |
fory |
+| MediaContentList | Serialize | 2785.9 | 7616.6 | 3611.5 |
fory |
+| MediaContentList | Deserialize | 3709.7 | 3018.6 | 5294.5 |
protobuf |
### Throughput Results (ops/sec)
-| 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 |
+| Datatype | Operation | fory TPS | protobuf TPS | json TPS |
Fastest |
+| ----------------- | ----------- | ---------- | ------------ | --------- |
-------- |
+| NumericStruct | Serialize | 13,162,466 | 1,631,271 | 2,016,097 |
fory |
+| NumericStruct | Deserialize | 17,568,418 | 10,543,763 | 3,002,971 |
fory |
+| Sample | Serialize | 3,144,194 | 495,893 | 709,593 |
fory |
+| Sample | Deserialize | 2,015,942 | 1,108,010 | 621,285 |
fory |
+| MediaContent | Serialize | 2,023,719 | 736,097 | 1,244,512 |
fory |
+| MediaContent | Deserialize | 1,854,348 | 1,591,617 | 881,572 |
fory |
+| NumericStructList | Serialize | 5,121,376 | 331,201 | 496,645 |
fory |
+| NumericStructList | Deserialize | 5,444,504 | 1,647,728 | 514,414 |
fory |
+| SampleList | Serialize | 594,551 | 51,688 | 84,244 |
fory |
+| SampleList | Deserialize | 388,820 | 174,503 | 110,199 |
fory |
+| MediaContentList | Serialize | 358,954 | 131,293 | 276,891 |
fory |
+| MediaContentList | Deserialize | 269,561 | 331,275 | 188,876 |
protobuf |
### Serialized Data Sizes (bytes)
diff --git a/docs/benchmarks/javascript/throughput.png
b/docs/benchmarks/javascript/throughput.png
index cdd5ac4928..0d974d32ca 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 544b417069..45a2bdbcd5 100644
--- a/docs/benchmarks/python/README.md
+++ b/docs/benchmarks/python/README.md
@@ -1,6 +1,6 @@
# Python Benchmark Performance Report
-_Generated on 2026-05-08 11:35:12_
+_Generated on 2026-05-08 17:26:51_
## How to Generate This Report
@@ -9,6 +9,12 @@ cd benchmarks/python
./run.sh
```
+## Benchmark Plot
+
+The plot shows throughput (ops/sec); higher is better.
+
+
+
## Hardware & OS Info
| Key | Value |
@@ -33,73 +39,41 @@ cd benchmarks/python
| number | 1000 |
| list_size | 5 |
-## Benchmark Plots
-
-All plots show throughput (ops/sec); higher is better.
-
-### Throughput
-
-
-
-### MediaContent
-
-
-
-### MediaContentList
-
-
-
-### Sample
-
-
-
-### SampleList
-
-
-
-### NumericStruct
-
-
-
-### NumericStructList
-
-
-
## Benchmark Results
### Timing Results (nanoseconds)
| 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 |
+| NumericStruct | Serialize | 491.4 | 802.3 | 1119.8 |
fory |
+| NumericStruct | Deserialize | 522.2 | 1211.6 | 1788.7 |
fory |
+| Sample | Serialize | 1096.4 | 3315.8 | 10185.2 |
fory |
+| Sample | Deserialize | 2772.0 | 6659.7 | 7061.9 |
fory |
+| MediaContent | Serialize | 989.2 | 3433.2 | 4392.7 |
fory |
+| MediaContent | Deserialize | 1518.7 | 4381.2 | 4305.1 |
fory |
+| NumericStructList | Serialize | 1111.2 | 4707.9 | 3235.8 |
fory |
+| NumericStructList | Deserialize | 1891.7 | 6891.0 | 3974.9 |
fory |
+| SampleList | Serialize | 3447.2 | 18719.1 | 32125.7 |
fory |
+| SampleList | Deserialize | 13131.6 | 35264.2 | 24154.4 |
fory |
+| MediaContentList | Serialize | 2996.5 | 17597.4 | 11087.8 |
fory |
+| MediaContentList | Deserialize | 6228.7 | 21562.0 | 10459.3 |
fory |
### Throughput Results (ops/sec)
| 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 |
+| NumericStruct | Serialize | 2,035,025 | 1,246,379 | 893,009 |
fory |
+| NumericStruct | Deserialize | 1,915,112 | 825,344 | 559,055 |
fory |
+| Sample | Serialize | 912,072 | 301,590 | 98,182 |
fory |
+| Sample | Deserialize | 360,751 | 150,158 | 141,605 |
fory |
+| MediaContent | Serialize | 1,010,939 | 291,275 | 227,652 |
fory |
+| MediaContent | Deserialize | 658,462 | 228,247 | 232,281 |
fory |
+| NumericStructList | Serialize | 899,960 | 212,407 | 309,040 |
fory |
+| NumericStructList | Deserialize | 528,636 | 145,116 | 251,580 |
fory |
+| SampleList | Serialize | 290,092 | 53,421 | 31,128 |
fory |
+| SampleList | Deserialize | 76,152 | 28,357 | 41,400 |
fory |
+| MediaContentList | Serialize | 333,720 | 56,826 | 90,189 |
fory |
+| MediaContentList | Deserialize | 160,547 | 46,378 | 95,609 |
fory |
### Serialized Data Sizes (bytes)
diff --git a/docs/benchmarks/python/throughput.png
b/docs/benchmarks/python/throughput.png
index d0b551b556..f7a6dd68ff 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 e7ab4d5ec5..6ee463f661 100644
--- a/docs/benchmarks/rust/README.md
+++ b/docs/benchmarks/rust/README.md
@@ -1,6 +1,6 @@
# Rust Benchmark Performance Report
-_Generated on 2026-05-08 03:28:21_
+_Generated on 2026-05-08 17:27:11_
## How to Generate This Report
@@ -11,6 +11,12 @@ cargo run --release --bin fory_profiler --
--print-all-serialized-sizes | tee re
python benchmark_report.py --log-file results/cargo_bench.log --size-file
results/serialized_sizes.txt --output-dir results
```
+## Benchmark Plot
+
+The plot shows throughput (ops/sec); higher is better.
+
+
+
## Hardware & OS Info
| Key | Value |
@@ -21,39 +27,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-05-08T03:28:19 |
-
-## Benchmark Plots
-
-All class-level plots below show throughput (ops/sec).
-
-### Throughput
-
-
-
-### MediaContent
-
-
-
-### MediaContentList
-
-
-
-### Sample
-
-
-
-### SampleList
-
-
-
-### NumericStruct
-
-
-
-### NumericStructList
-
-
+| Benchmark Date | 2026-05-08T16:47:49 |
## Benchmark Results
@@ -61,35 +35,35 @@ All class-level plots below show throughput (ops/sec).
| 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 |
+| NumericStruct | Serialize | 38.1 | 94.6 | 239.5 |
fory |
+| NumericStruct | Deserialize | 32.6 | 62.4 | 107.3 |
fory |
+| Sample | Serialize | 95.3 | 591.8 | 601.1 |
fory |
+| Sample | Deserialize | 410.1 | 925.8 | 805.9 |
fory |
+| MediaContent | Serialize | 120.0 | 553.9 | 446.9 |
fory |
+| MediaContent | Deserialize | 566.7 | 713.0 | 902.6 |
fory |
+| NumericStructList | Serialize | 121.5 | 512.0 | 618.0 |
fory |
+| NumericStructList | Deserialize | 137.9 | 404.9 | 615.9 |
fory |
+| SampleList | Serialize | 267.7 | 2920.2 | 2011.1 |
fory |
+| SampleList | Deserialize | 1831.9 | 4636.4 | 4141.4 |
fory |
+| MediaContentList | Serialize | 367.1 | 2835.6 | 1441.7 |
fory |
+| MediaContentList | Deserialize | 2703.8 | 3622.3 | 4832.3 |
fory |
### Throughput Results (ops/sec)
| 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 |
+| NumericStruct | Serialize | 26,237,767 | 10,572,613 | 4,174,668 |
fory |
+| NumericStruct | Deserialize | 30,720,079 | 16,035,920 | 9,322,271 |
fory |
+| Sample | Serialize | 10,494,611 | 1,689,874 | 1,663,700 |
fory |
+| Sample | Deserialize | 2,438,311 | 1,080,170 | 1,240,895 |
fory |
+| MediaContent | Serialize | 8,331,945 | 1,805,445 | 2,237,687 |
fory |
+| MediaContent | Deserialize | 1,764,633 | 1,402,426 | 1,107,960 |
fory |
+| NumericStructList | Serialize | 8,232,485 | 1,953,125 | 1,618,071 |
fory |
+| NumericStructList | Deserialize | 7,250,580 | 2,469,563 | 1,623,535 |
fory |
+| SampleList | Serialize | 3,735,664 | 342,442 | 497,240 |
fory |
+| SampleList | Deserialize | 545,881 | 215,685 | 241,464 |
fory |
+| MediaContentList | Serialize | 2,724,350 | 352,659 | 693,626 |
fory |
+| MediaContentList | Deserialize | 369,850 | 276,068 | 206,941 |
fory |
### Serialized Data Sizes (bytes)
diff --git a/docs/benchmarks/rust/throughput.png
b/docs/benchmarks/rust/throughput.png
index 659b2753a6..dbb792da9c 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 5c70c5ab19..ffb824b12a 100644
--- a/docs/benchmarks/swift/README.md
+++ b/docs/benchmarks/swift/README.md
@@ -1,12 +1,16 @@
# Fory Swift Benchmark
-This benchmark compares serialization and deserialization throughput for
Apache Fory, Protocol Buffers, and MessagePack in Swift.
+This benchmark compares serialization and deserialization throughput for
Apache Fory, Protocol Buffers, and JSON in Swift.
+
+## Throughput Plot
+
+
## Hardware and Runtime Info
| Key | Value |
| --------------------- | ----------------------------- |
-| Timestamp | 2026-05-07T19:46:19Z |
+| Timestamp | 2026-05-08T09:05:32Z |
| OS | Version 15.7.2 (Build 24G325) |
| Host | macbook-pro.local |
| CPU Cores (Logical) | 12 |
@@ -15,30 +19,28 @@ This benchmark compares serialization and deserialization
throughput for Apache
## Throughput Results
-
-
-| 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) |
+| Datatype | Operation | Fory TPS | Protobuf TPS | JSON TPS |
Fastest |
+| ----------------- | ----------- | ---------: | -----------: | -------: |
------------ |
+| NumericStruct | Serialize | 9,435,623 | 6,175,939 | 408,960 |
fory (1.53x) |
+| NumericStruct | Deserialize | 11,037,225 | 6,842,676 | 328,302 |
fory (1.61x) |
+| Sample | Serialize | 3,596,835 | 1,257,100 | 79,781 |
fory (2.86x) |
+| Sample | Deserialize | 982,255 | 733,588 | 41,274 |
fory (1.34x) |
+| MediaContent | Serialize | 1,561,376 | 609,896 | 98,677 |
fory (2.56x) |
+| MediaContent | Deserialize | 523,836 | 395,202 | 70,528 |
fory (1.33x) |
+| NumericStructList | Serialize | 2,910,846 | 918,363 | 82,965 |
fory (3.17x) |
+| NumericStructList | Deserialize | 2,436,636 | 701,656 | 69,353 |
fory (3.47x) |
+| SampleList | Serialize | 694,557 | 202,040 | 16,679 |
fory (3.44x) |
+| SampleList | Deserialize | 187,109 | 131,947 | 8,236 |
fory (1.42x) |
+| MediaContentList | Serialize | 348,238 | 98,007 | 18,698 |
fory (3.55x) |
+| MediaContentList | Deserialize | 104,990 | 74,422 | 16,298 |
fory (1.41x) |
## Serialized Size (bytes)
-| 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 |
+| Datatype | Fory | Protobuf | JSON |
+| ----------------- | ---: | -------: | ---: |
+| NumericStruct | 78 | 93 | 159 |
+| Sample | 445 | 375 | 696 |
+| MediaContent | 362 | 301 | 608 |
+| NumericStructList | 255 | 475 | 816 |
+| SampleList | 1978 | 1890 | 3501 |
+| MediaContentList | 1531 | 1520 | 3067 |
diff --git a/docs/benchmarks/swift/throughput.png
b/docs/benchmarks/swift/throughput.png
index f4a140ebfb..cbb16ba178 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]