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.git
The following commit(s) were added to refs/heads/main by this push:
new 16a923085 docs(java): fix benchmark images (#3304)
16a923085 is described below
commit 16a923085a33c36ce11f54fc0036dc370886932b
Author: Shawn Yang <[email protected]>
AuthorDate: Fri Feb 6 19:31:07 2026 +0800
docs(java): fix benchmark images (#3304)
## Why?
Java benchmark docs currently depend on many per-case images and
manually maintained tables, which makes them hard to scan and easy to
drift from generated benchmark data.
## What does this PR do?
- Refactors `benchmarks/java_benchmark/analyze.py` to centralize
benchmark metadata and generate combined benchmark charts.
- Adds automatic update logic for `docs/benchmarks/java/README.md`
benchmark tables (pivoted by libraries with stable ordering and
formatting).
- Replaces root `README.md` Java throughput image groups with two
consolidated repository-level charts.
- Regenerates Java benchmark artifacts by replacing many single-case
PNGs with combined images (`java_heap_*`, `java_offheap_*`,
`java_zero_copy_*`, and repo summary charts).
- Normalizes benchmark image embedding style in
`docs/benchmarks/cpp/README.md` and `docs/benchmarks/rust/README.md`
from HTML tags to Markdown image syntax.
## Related issues
N/A
## Does this PR introduce any user-facing change?
Benchmark documentation and generated benchmark charts are updated.
- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?
## Benchmark
See updated charts under `docs/benchmarks/java/` and the benchmark
tables in `docs/benchmarks/java/README.md`.
---
README.md | 10 +-
benchmarks/java_benchmark/analyze.py | 593 +++++++++++++++------
docs/benchmarks/cpp/README.md | 4 +-
docs/benchmarks/java/README.md | 542 ++++---------------
...ize_compatible_MEDIA_CONTENT_from_array_tps.png | Bin 31840 -> 0 bytes
...ize_compatible_STRUCT_from_directBuffer_tps.png | Bin 33119 -> 0 bytes
...alize_compatible_MEDIA_CONTENT_to_array_tps.png | Bin 34290 -> 0 bytes
...alize_compatible_STRUCT_to_directBuffer_tps.png | Bin 34685 -> 0 bytes
...ch_deserialize_MEDIA_CONTENT_from_array_tps.png | Bin 33209 -> 0 bytes
...rialize_MEDIA_CONTENT_from_directBuffer_tps.png | Bin 34145 -> 0 bytes
.../bench_deserialize_SAMPLE_from_array_tps.png | Bin 32523 -> 0 bytes
...ch_deserialize_SAMPLE_from_directBuffer_tps.png | Bin 31301 -> 0 bytes
.../bench_deserialize_STRUCT2_from_array_tps.png | Bin 30532 -> 0 bytes
...h_deserialize_STRUCT2_from_directBuffer_tps.png | Bin 31564 -> 0 bytes
.../bench_deserialize_STRUCT_from_array_tps.png | Bin 30493 -> 0 bytes
...ch_deserialize_STRUCT_from_directBuffer_tps.png | Bin 31682 -> 0 bytes
...patible_MEDIA_CONTENT_from_directBuffer_tps.png | Bin 34063 -> 0 bytes
...eserialize_compatible_SAMPLE_from_array_tps.png | Bin 32469 -> 0 bytes
...ize_compatible_SAMPLE_from_directBuffer_tps.png | Bin 32277 -> 0 bytes
...serialize_compatible_STRUCT2_from_array_tps.png | Bin 32025 -> 0 bytes
...ze_compatible_STRUCT2_from_directBuffer_tps.png | Bin 31872 -> 0 bytes
...eserialize_compatible_STRUCT_from_array_tps.png | Bin 32178 -> 0 bytes
.../java/java_heap_deserialize_compatible.png | Bin 0 -> 99247 bytes
.../java/java_heap_deserialize_consistent.png | Bin 0 -> 107832 bytes
.../java/java_heap_serialize_compatible.png | Bin 0 -> 108196 bytes
.../java/java_heap_serialize_consistent.png | Bin 0 -> 106382 bytes
.../java/java_offheap_deserialize_compatible.png | Bin 0 -> 104602 bytes
.../java/java_offheap_deserialize_consistent.png | Bin 0 -> 108056 bytes
.../java/java_offheap_serialize_compatible.png | Bin 0 -> 119826 bytes
.../java/java_offheap_serialize_consistent.png | Bin 0 -> 121717 bytes
.../java/java_repo_deserialization_throughput.png | Bin 0 -> 116455 bytes
.../java/java_repo_serialization_throughput.png | Bin 0 -> 124190 bytes
.../benchmarks/java/java_zero_copy_deserialize.png | Bin 0 -> 98312 bytes
docs/benchmarks/java/java_zero_copy_serialize.png | Bin 0 -> 98680 bytes
.../bench_serialize_MEDIA_CONTENT_to_array_tps.png | Bin 33109 -> 0 bytes
...serialize_MEDIA_CONTENT_to_directBuffer_tps.png | Bin 33266 -> 0 bytes
.../bench_serialize_SAMPLE_to_array_tps.png | Bin 32126 -> 0 bytes
.../bench_serialize_SAMPLE_to_directBuffer_tps.png | Bin 33863 -> 0 bytes
.../bench_serialize_STRUCT2_to_array_tps.png | Bin 31979 -> 0 bytes
...bench_serialize_STRUCT2_to_directBuffer_tps.png | Bin 31389 -> 0 bytes
.../bench_serialize_STRUCT_to_array_tps.png | Bin 32803 -> 0 bytes
.../bench_serialize_STRUCT_to_directBuffer_tps.png | Bin 32062 -> 0 bytes
...ompatible_MEDIA_CONTENT_to_directBuffer_tps.png | Bin 33412 -> 0 bytes
...ch_serialize_compatible_SAMPLE_to_array_tps.png | Bin 32443 -> 0 bytes
...alize_compatible_SAMPLE_to_directBuffer_tps.png | Bin 34231 -> 0 bytes
...h_serialize_compatible_STRUCT2_to_array_tps.png | Bin 33595 -> 0 bytes
...lize_compatible_STRUCT2_to_directBuffer_tps.png | Bin 32728 -> 0 bytes
...ch_serialize_compatible_STRUCT_to_array_tps.png | Bin 32510 -> 0 bytes
...opy_bench_deserialize_BUFFER_from_array_tps.png | Bin 26864 -> 0 bytes
...ch_deserialize_BUFFER_from_directBuffer_tps.png | Bin 28380 -> 0 bytes
..._deserialize_PRIMITIVE_ARRAY_from_array_tps.png | Bin 26675 -> 0 bytes
...alize_PRIMITIVE_ARRAY_from_directBuffer_tps.png | Bin 27982 -> 0 bytes
...ro_copy_bench_serialize_BUFFER_to_array_tps.png | Bin 25816 -> 0 bytes
..._bench_serialize_BUFFER_to_directBuffer_tps.png | Bin 27249 -> 0 bytes
...ench_serialize_PRIMITIVE_ARRAY_to_array_tps.png | Bin 26219 -> 0 bytes
...rialize_PRIMITIVE_ARRAY_to_directBuffer_tps.png | Bin 30094 -> 0 bytes
docs/benchmarks/rust/README.md | 28 +-
57 files changed, 531 insertions(+), 646 deletions(-)
diff --git a/README.md b/README.md
index ba7b6ccd9..aa6d29157 100644
--- a/README.md
+++ b/README.md
@@ -86,19 +86,13 @@ The following benchmarks compare Fory against popular Java
serialization framewo
**Serialization Throughput**:
<p align="center">
-<img width="24%" alt="Struct Serialization Compatible"
src="docs/benchmarks/java/compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png">
-<img width="24%" alt="MediaContent Serialization Compatible"
src="docs/benchmarks/java/compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png">
-<img width="24%" alt="MediaContent Serialization"
src="docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png">
-<img width="24%" alt="Sample Serialization"
src="docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_array_tps.png">
+<img src="docs/benchmarks/java/java_repo_serialization_throughput.png"
width="95%" alt="Java Serialization Throughput">
</p>
**Deserialization Throughput**:
<p align="center">
-<img width="24%" alt="Struct Deserialization Compatible"
src="docs/benchmarks/java/compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png">
-<img width="24%" alt="MediaContent Deserialization Compatible"
src="docs/benchmarks/java/compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png">
-<img width="24%" alt="MediaContent Deserialization"
src="docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png">
-<img width="24%" alt="Sample Deserialization"
src="docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_array_tps.png">
+<img src="docs/benchmarks/java/java_repo_deserialization_throughput.png"
width="95%" alt="Java Deserialization Throughput">
</p>
**Important**: Fory's runtime code generation requires proper warm-up for
performance measurement:
diff --git a/benchmarks/java_benchmark/analyze.py
b/benchmarks/java_benchmark/analyze.py
index f030cf5c6..86f095b27 100644
--- a/benchmarks/java_benchmark/analyze.py
+++ b/benchmarks/java_benchmark/analyze.py
@@ -19,31 +19,159 @@
process fory/kryo/fst/hession performance data
"""
-import datetime
import matplotlib.pyplot as plt
import os
import pandas as pd
from pathlib import Path
import re
-import sys
dir_path = os.path.dirname(os.path.realpath(__file__))
-
-
-def to_markdown(df: pd.DataFrame, filepath: str):
- columns = df.columns.tolist()
- for col in list(columns):
- if len(df[col].value_counts()) == 1:
- columns.remove(col)
- if "Lib" in columns:
- columns.remove("Lib")
- columns.insert(0, "Lib")
- if "Tps" in columns:
- columns.remove("Tps")
- columns.append("Tps")
- df = df[columns]
- with open(filepath, "w") as f:
- f.write(_to_markdown(df))
+repo_root = Path(dir_path).parent.parent
+java_benchmark_dir = repo_root / "docs/benchmarks/java"
+java_benchmark_data_dir = java_benchmark_dir / "data"
+java_benchmark_readme = java_benchmark_dir / "README.md"
+
+lib_order = [
+ "Fory",
+ "ForyMetaShared",
+ "Kryo",
+ "Fst",
+ "Hession",
+ "Jdk",
+ "Protostuff",
+]
+
+java_serialization_files = [
+ "jmh-jdk-11-serialization.csv",
+ "jmh-jdk-11-deserialization.csv",
+]
+java_zero_copy_file = "jmh-jdk-11-zerocopy.csv"
+
+java_plot_combined_groups = [
+ {
+ "alt": "Java Heap Schema Consistent Serialization",
+ "combined": "java_heap_serialize_consistent.png",
+ "sources": [
+ "serialization/bench_serialize_STRUCT_to_array_tps.png",
+ "serialization/bench_serialize_STRUCT2_to_array_tps.png",
+ "serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png",
+ "serialization/bench_serialize_SAMPLE_to_array_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Heap Schema Compatible Serialization",
+ "combined": "java_heap_serialize_compatible.png",
+ "sources": [
+ "serialization/bench_serialize_compatible_STRUCT_to_array_tps.png",
+
"serialization/bench_serialize_compatible_STRUCT2_to_array_tps.png",
+
"compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png",
+ "serialization/bench_serialize_compatible_SAMPLE_to_array_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Heap Schema Consistent Deserialization",
+ "combined": "java_heap_deserialize_consistent.png",
+ "sources": [
+ "deserialization/bench_deserialize_STRUCT_from_array_tps.png",
+ "deserialization/bench_deserialize_STRUCT2_from_array_tps.png",
+
"deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png",
+ "deserialization/bench_deserialize_SAMPLE_from_array_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Heap Schema Compatible Deserialization",
+ "combined": "java_heap_deserialize_compatible.png",
+ "sources": [
+
"deserialization/bench_deserialize_compatible_STRUCT_from_array_tps.png",
+
"deserialization/bench_deserialize_compatible_STRUCT2_from_array_tps.png",
+
"compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png",
+
"deserialization/bench_deserialize_compatible_SAMPLE_from_array_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Off Heap Schema Consistent Serialization",
+ "combined": "java_offheap_serialize_consistent.png",
+ "sources": [
+ "serialization/bench_serialize_STRUCT_to_directBuffer_tps.png",
+ "serialization/bench_serialize_STRUCT2_to_directBuffer_tps.png",
+
"serialization/bench_serialize_MEDIA_CONTENT_to_directBuffer_tps.png",
+
"serialization/bench_serialize_compatible_SAMPLE_to_directBuffer_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Off Heap Schema Compatible Serialization",
+ "combined": "java_offheap_serialize_compatible.png",
+ "sources": [
+
"compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png",
+
"serialization/bench_serialize_compatible_STRUCT2_to_directBuffer_tps.png",
+
"serialization/bench_serialize_compatible_MEDIA_CONTENT_to_directBuffer_tps.png",
+ "serialization/bench_serialize_SAMPLE_to_directBuffer_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Off Heap Schema Consistent Deserialization",
+ "combined": "java_offheap_deserialize_consistent.png",
+ "sources": [
+
"deserialization/bench_deserialize_STRUCT_from_directBuffer_tps.png",
+
"deserialization/bench_deserialize_STRUCT2_from_directBuffer_tps.png",
+
"deserialization/bench_deserialize_MEDIA_CONTENT_from_directBuffer_tps.png",
+
"deserialization/bench_deserialize_SAMPLE_from_directBuffer_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Off Heap Schema Compatible Deserialization",
+ "combined": "java_offheap_deserialize_compatible.png",
+ "sources": [
+
"compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png",
+
"deserialization/bench_deserialize_compatible_STRUCT2_from_directBuffer_tps.png",
+
"deserialization/bench_deserialize_compatible_MEDIA_CONTENT_from_directBuffer_tps.png",
+
"deserialization/bench_deserialize_compatible_SAMPLE_from_directBuffer_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Zero Copy Serialization",
+ "combined": "java_zero_copy_serialize.png",
+ "sources": [
+ "zerocopy/zero_copy_bench_serialize_BUFFER_to_array_tps.png",
+
"zerocopy/zero_copy_bench_serialize_BUFFER_to_directBuffer_tps.png",
+
"zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_array_tps.png",
+
"zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_directBuffer_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Zero Copy Deserialization",
+ "combined": "java_zero_copy_deserialize.png",
+ "sources": [
+ "zerocopy/zero_copy_bench_deserialize_BUFFER_from_array_tps.png",
+
"zerocopy/zero_copy_bench_deserialize_BUFFER_from_directBuffer_tps.png",
+
"zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_array_tps.png",
+
"zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_directBuffer_tps.png",
+ ],
+ },
+]
+
+repo_plot_combined_groups = [
+ {
+ "alt": "Java Serialization Throughput",
+ "combined":
"docs/benchmarks/java/java_repo_serialization_throughput.png",
+ "sources": [
+
"docs/benchmarks/java/compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png",
+
"docs/benchmarks/java/compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png",
+
"docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png",
+
"docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_array_tps.png",
+ ],
+ },
+ {
+ "alt": "Java Deserialization Throughput",
+ "combined":
"docs/benchmarks/java/java_repo_deserialization_throughput.png",
+ "sources": [
+
"docs/benchmarks/java/compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png",
+
"docs/benchmarks/java/compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png",
+
"docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png",
+
"docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_array_tps.png",
+ ],
+ },
+]
def _to_markdown(df: pd.DataFrame):
@@ -57,6 +185,245 @@ def _to_markdown(df: pd.DataFrame):
return md_table
+def _format_tps(value):
+ if pd.isna(value):
+ return ""
+ return f"{float(value):.6f}"
+
+
+def _pivot_lib_columns(df: pd.DataFrame, index_columns):
+ table_df = (
+ df.pivot_table(
+ index=index_columns,
+ columns="Lib",
+ values="Tps",
+ aggfunc="first",
+ sort=False,
+ )
+ .reset_index()
+ .copy()
+ )
+ available_libs = table_df.columns.tolist()
+ sorted_lib_columns = [name for name in lib_order if name in available_libs]
+ extra_lib_columns = sorted(
+ [
+ name
+ for name in available_libs
+ if name not in index_columns + sorted_lib_columns
+ ]
+ )
+ table_df = table_df[index_columns + sorted_lib_columns + extra_lib_columns]
+ if "references" in table_df.columns:
+ table_df["references"] =
table_df["references"].astype(str).str.capitalize()
+ for column in sorted_lib_columns + extra_lib_columns:
+ table_df[column] = table_df[column].map(_format_tps)
+ return table_df
+
+
+def _replace_table_section(content: str, heading: str, table_markdown: str):
+ lines = content.splitlines()
+ start_index = None
+ for index, line in enumerate(lines):
+ if line.strip() == heading:
+ start_index = index
+ break
+ if start_index is None:
+ raise ValueError(f"Failed to find section {heading}")
+ end_index = len(lines)
+ for index in range(start_index + 1, len(lines)):
+ if lines[index].startswith("### "):
+ end_index = index
+ break
+ updated_lines = lines[: start_index + 1] + ["", table_markdown, ""]
+ if end_index < len(lines):
+ updated_lines.extend(lines[end_index:])
+ return "\n".join(updated_lines).rstrip() + "\n"
+
+
+def _parse_chart_spec(source_path: str):
+ name = Path(source_path).name
+ benchmark_match = re.match(
+
r"bench_(serialize(?:_compatible)?|deserialize(?:_compatible)?)_([A-Z0-9_]+)_(to|from)_(array|directBuffer)_tps\.png",
+ name,
+ )
+ if benchmark_match is not None:
+ return {
+ "kind": "benchmark",
+ "benchmark": benchmark_match.group(1),
+ "objectType": benchmark_match.group(2),
+ "bufferType": benchmark_match.group(4),
+ }
+ zero_copy_match = re.match(
+
r"zero_copy_bench_(serialize|deserialize)_([A-Z_]+)_(to|from)_(array|directBuffer)_tps\.png",
+ name,
+ )
+ if zero_copy_match is not None:
+ return {
+ "kind": "zero_copy",
+ "benchmark": zero_copy_match.group(1),
+ "dataType": zero_copy_match.group(2),
+ "bufferType": zero_copy_match.group(4),
+ }
+ raise ValueError(f"Unsupported chart source path: {source_path}")
+
+
+def _prepare_benchmark_plot_data(bench_df: pd.DataFrame):
+ data = bench_df.fillna("").copy()
+ compatible = data[data["Benchmark"].str.contains("compatible")]
+ if len(compatible) > 0:
+ jdk = data[data["Lib"].str.contains("Jdk")].copy()
+ jdk["Benchmark"] = jdk["Benchmark"] + "_compatible"
+ data = pd.concat([data, jdk], ignore_index=True)
+ data["Tps"] = (data["Tps"] / scaler).apply(format_scaler)
+ return data
+
+
+def _prepare_zero_copy_plot_data(zero_copy_df: pd.DataFrame):
+ data = zero_copy_df.fillna("").copy()
+ data["Tps"] = (data["Tps"] / scaler).apply(format_scaler)
+ return data
+
+
+def _build_single_plot_frame(spec, benchmark_data, zero_copy_data):
+ if spec["kind"] == "benchmark":
+ sub_df = benchmark_data[
+ (benchmark_data["Benchmark"] == spec["benchmark"])
+ & (benchmark_data["objectType"] == spec["objectType"])
+ & (benchmark_data["bufferType"] == spec["bufferType"])
+ ][["Lib", "references", "Tps"]]
+ final_df = (
+ sub_df.reset_index(drop=True)
+ .set_index(["Lib", "references"])
+ .unstack("Lib")
+ )
+ if spec["benchmark"].startswith("serialize"):
+ title = f"{spec['benchmark']} {spec['objectType']} to
{spec['bufferType']} (Tps)"
+ else:
+ title = f"{spec['benchmark']} {spec['objectType']} from
{spec['bufferType']} (Tps)"
+ xlabel = "enable_references"
+ width = 0.7 * bar_width_scale
+ else:
+ sub_df = zero_copy_data[
+ (zero_copy_data["Benchmark"] == spec["benchmark"])
+ & (zero_copy_data["dataType"] == spec["dataType"])
+ & (zero_copy_data["bufferType"] == spec["bufferType"])
+ ][["Lib", "array_size", "Tps"]]
+ final_df = (
+ sub_df.reset_index(drop=True)
+ .set_index(["Lib", "array_size"])
+ .unstack("Lib")
+ )
+ if spec["benchmark"].startswith("serialize"):
+ title = (
+ f"{spec['benchmark']} {spec['dataType']} to
{spec['bufferType']} (Tps)"
+ )
+ else:
+ title = f"{spec['benchmark']} {spec['dataType']} from
{spec['bufferType']} (Tps)"
+ xlabel = "array_size"
+ width = 0.8 * bar_width_scale
+ return final_df, title, xlabel, width
+
+
+def _plot_combined_group(group, benchmark_data, zero_copy_data, output_path:
Path):
+ fig, axes = plt.subplots(1, 4, figsize=(22, 6), gridspec_kw={"wspace":
0.15})
+ for axis_index, source_path in enumerate(group["sources"]):
+ axis = axes[axis_index]
+ spec = _parse_chart_spec(source_path)
+ final_df, title, xlabel, width = _build_single_plot_frame(
+ spec, benchmark_data, zero_copy_data
+ )
+ libs = final_df.columns.to_frame()["Lib"]
+ color = [color_map[lib] for lib in libs]
+ final_df.plot.bar(title=title, color=color, ax=axis, width=width)
+ for container in axis.containers:
+ axis.bar_label(container, fontsize=8)
+ axis.set_xlabel(xlabel)
+ if axis_index == 0:
+ axis.set_ylabel(f"Tps/{scaler}")
+ else:
+ axis.set_ylabel("")
+ add_upper_right_legend(axis, libs)
+ output_path.parent.mkdir(parents=True, exist_ok=True)
+ fig.savefig(
+ output_path, dpi=170, bbox_inches="tight", pad_inches=0.03,
facecolor="white"
+ )
+ plt.close(fig)
+
+
+def _generate_direct_combined_plots(benchmark_df, zero_copy_df, base_dir:
Path, groups):
+ benchmark_data = _prepare_benchmark_plot_data(benchmark_df)
+ zero_copy_data = _prepare_zero_copy_plot_data(zero_copy_df)
+ for group in groups:
+ output_path = base_dir / group["combined"]
+ _plot_combined_group(group, benchmark_data, zero_copy_data,
output_path)
+
+
+def _update_java_benchmark_readme(data_dir: Path, readme_path: Path):
+ benchmark_dfs = []
+ for file_name in java_serialization_files:
+ _, bench_df = process_data(str(data_dir / file_name))
+ benchmark_dfs.append(bench_df)
+ benchmark_df = pd.concat(benchmark_dfs, ignore_index=True)
+ benchmark_df = (
+ benchmark_df.assign(
+ _benchmark_order=benchmark_df["Benchmark"].map(
+ {
+ "serialize": 0,
+ "serialize_compatible": 1,
+ "deserialize": 2,
+ "deserialize_compatible": 3,
+ }
+ ),
+ _buffer_order=benchmark_df["bufferType"].map(
+ {"array": 0, "directBuffer": 1}
+ ),
+ _object_order=benchmark_df["objectType"].map(
+ {"STRUCT": 0, "STRUCT2": 1, "MEDIA_CONTENT": 2, "SAMPLE": 3}
+ ),
+ )
+ .sort_values(
+ ["_benchmark_order", "_object_order", "_buffer_order",
"references"]
+ )
+ .drop(columns=["_benchmark_order", "_buffer_order", "_object_order"])
+ .reset_index(drop=True)
+ )
+ benchmark_table = _pivot_lib_columns(
+ benchmark_df, ["Benchmark", "objectType", "bufferType", "references"]
+ )
+
+ zero_copy_df, _ = process_data(str(data_dir / java_zero_copy_file))
+ zero_copy_df = (
+ zero_copy_df.assign(
+ _benchmark_order=zero_copy_df["Benchmark"].map(
+ {"serialize": 0, "deserialize": 1}
+ ),
+ _buffer_order=zero_copy_df["bufferType"].map(
+ {"array": 0, "directBuffer": 1}
+ ),
+ _data_type_order=zero_copy_df["dataType"].map(
+ {"BUFFER": 0, "PRIMITIVE_ARRAY": 1}
+ ),
+ )
+ .sort_values(
+ ["_benchmark_order", "array_size", "_buffer_order",
"_data_type_order"]
+ )
+ .drop(columns=["_benchmark_order", "_buffer_order",
"_data_type_order"])
+ .reset_index(drop=True)
+ )
+ zero_copy_table = _pivot_lib_columns(
+ zero_copy_df, ["Benchmark", "array_size", "bufferType", "dataType"]
+ )
+
+ readme_content = readme_path.read_text()
+ readme_content = _replace_table_section(
+ readme_content, "### Java Serialization", _to_markdown(benchmark_table)
+ )
+ readme_content = _replace_table_section(
+ readme_content, "### Java Zero-copy", _to_markdown(zero_copy_table)
+ )
+ readme_path.write_text(readme_content)
+
+
def process_data(filepath: str):
df = pd.read_csv(filepath)
columns = list(df.columns.values)
@@ -77,21 +444,24 @@ def process_data(filepath: str):
pat="_", n=1, expand=True
)
bench_df["Lib"] = bench_df["Lib"].str.capitalize()
+ bench_df["Lib"] = bench_df["Lib"].replace(
+ {"Forymetashared": "ForyMetaShared"}
+ )
bench_df.drop(["Threads"], axis=1, inplace=True)
return bench_df
- zero_copy_bench = df[df["Benchmark"].str.contains("ZeroCopy")]
+ zero_copy_bench = df[df["Benchmark"].str.contains("ZeroCopy")].copy()
zero_copy_bench = process_df(zero_copy_bench)
- bench = df[~df["Benchmark"].str.contains("ZeroCopy")]
+ bench = df[~df["Benchmark"].str.contains("ZeroCopy")].copy()
bench = process_df(bench)
return zero_copy_bench, bench
color_map = {
- "Fory": "#7845FD",
- "Forymetashared": "#B237ED", # (1, 0.65, 0.55)
+ "Fory": "#FF6f01", # Orange
+ "ForyMetaShared": "#FFB266", # Shallow orange
# "Kryo": (1, 0.5, 1),
# "Kryo": (1, 0.84, 0.25),
"Kryo": "#55BCC2",
@@ -106,6 +476,7 @@ color_map = {
scaler = 10000
+bar_width_scale = 1.2
def format_scaler(x):
@@ -115,159 +486,33 @@ def format_scaler(x):
return round(x, 1)
-def plot(df: pd.DataFrame, file_dir, filename, column="Tps"):
- df["ns"] = (1 / df["Tps"] * 10**9).astype(int)
- data = df.fillna("")
- data.to_csv(f"{file_dir}/pd_{filename}")
- if "objectType" in data.columns:
- group_cols = ["Benchmark", "objectType", "bufferType"]
- else:
- group_cols = ["Benchmark", "bufferType"]
- compatible = data[data["Benchmark"].str.contains("compatible")]
- plot_color_map = dict(color_map)
- if len(compatible) > 0:
- jdk = data[data["Lib"].str.contains("Jdk")].copy()
- jdk["Benchmark"] = jdk["Benchmark"] + "_compatible"
- data = pd.concat([data, jdk])
- fory_metashared_color = plot_color_map["Forymetashared"]
- fory_color = plot_color_map["Fory"]
- plot_color_map["Fory"] = fory_metashared_color
- plot_color_map["Forymetashared"] = fory_color
- ylabel = column
- if column == "Tps":
- ylabel = f"Tps/{scaler}"
- data[column] = (data[column] / scaler).apply(format_scaler)
- grouped = data.groupby(group_cols)
- files_dict = {}
- count = 0
- for keys, sub_df in grouped:
- count = count + 1
- sub_df = sub_df[["Lib", "references", column]]
- if keys[0].startswith("serialize"):
- title = " ".join(keys[:-1]) + " to " + keys[-1]
- else:
- title = " ".join(keys[:-1]) + " from " + keys[-1]
- kind = "Time" if column == "ns" else "Tps"
- save_filename = f"""{filename}_{title.replace(" ",
"_")}_{kind.lower()}"""
- cnt = files_dict.get(save_filename, 0)
- if cnt > 0:
- files_dict[save_filename] = cnt = cnt + 1
- save_filename += "_" + cnt
- title = f"{title} ({kind})"
- fig, ax = plt.subplots()
- final_df = (
- sub_df.reset_index(drop=True)
- .set_index(["Lib", "references"])
- .unstack("Lib")
- )
- print(final_df)
- libs = final_df.columns.to_frame()["Lib"]
- color = [plot_color_map[lib] for lib in libs]
- sub_plot = final_df.plot.bar(
- title=title, color=color, ax=ax, figsize=(7, 7), width=0.7
- )
- for container in ax.containers:
- ax.bar_label(container)
- ax.set_xlabel("enable_references")
- ax.set_ylabel(ylabel)
- libs = libs.str.replace("metashared", "meta\nshared")
- ax.legend(libs, loc="upper right", prop={"size": 13})
- save_dir = get_plot_dir(file_dir)
- sub_plot.get_figure().savefig(save_dir + "/" + save_filename)
-
-
-def plot_zero_copy(df: pd.DataFrame, file_dir, filename, column="Tps"):
- df["ns"] = (1 / df["Tps"] * 10**9).astype(int)
- data = df.fillna("")
- data.to_csv(f"{file_dir}/pd_{filename}")
- if "dataType" in data.columns:
- group_cols = ["Benchmark", "dataType", "bufferType"]
- else:
- group_cols = ["Benchmark", "bufferType"]
- ylabel = column
- if column == "Tps":
- ylabel = f"Tps/{scaler}"
- data[column] = (data[column] / scaler).apply(format_scaler)
- grouped = data.groupby(group_cols)
- files_dict = {}
- count = 0
- for keys, sub_df in grouped:
- count = count + 1
- sub_df = sub_df[["Lib", "array_size", column]]
- if keys[0].startswith("serialize"):
- title = " ".join(keys[:-1]) + " to " + keys[-1]
- else:
- title = " ".join(keys[:-1]) + " from " + keys[-1]
- kind = "Time" if column == "ns" else "Tps"
- save_filename = f"""{filename}_{title.replace(" ",
"_")}_{kind.lower()}"""
- cnt = files_dict.get(save_filename, 0)
- if cnt > 0:
- files_dict[save_filename] = cnt = cnt + 1
- save_filename += "_" + cnt
- title = f"{title} ({kind})"
- fig, ax = plt.subplots()
- final_df = (
- sub_df.reset_index(drop=True)
- .set_index(["Lib", "array_size"])
- .unstack("Lib")
- )
- print(final_df)
- libs = final_df.columns.to_frame()["Lib"]
- color = [color_map[lib] for lib in libs]
- sub_plot = final_df.plot.bar(title=title, color=color, ax=ax,
figsize=(7, 7))
- for container in ax.containers:
- ax.bar_label(container)
- ax.set_xlabel("array_size")
- ax.set_ylabel(ylabel)
- ax.legend(libs, bbox_to_anchor=(0.23, 0.99), prop={"size": 13})
- save_dir = get_plot_dir(file_dir)
- sub_plot.get_figure().savefig(save_dir + "/" + save_filename)
-
-
-time_str = datetime.datetime.now().strftime("%m%d_%H%M_%S")
-
-
-def get_plot_dir(_file_dir):
- plot_dir = _file_dir + "/" + time_str
- if not os.path.exists(plot_dir):
- os.makedirs(plot_dir)
- return plot_dir
-
-
-def camel_to_snake(name):
- name = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name)
- return re.sub("([a-z\\d])([A-Z])", r"\1_\2", name).lower()
-
-
-def get_datasize_markdown(size_log):
- lines = [line.rsplit("===>", 1)[-1] for line in size_log.split("\n")]
- lines = [
- [item.strip() for item in line.split("|")][:-1] for line in lines if
"|" in line
+def add_upper_right_legend(ax, labels):
+ legend_labels = [
+ str(label).replace("ForyMetaShared", "ForyMeta\nShared") for label in
labels
]
- columns = "Lib,objectType,references,bufferType,size".split(",")
- df = pd.DataFrame(lines, columns=columns)
- df["size"] = df["size"].astype(int)
- df = df["objectType,references,bufferType,size".split(",") + ["Lib"]]
- grouped_df =
df.sort_values("objectType,references,bufferType,size".split(","))
- grouped_df =
grouped_df[~grouped_df["bufferType"].str.contains("directBuffer")]
- grouped_df = grouped_df["objectType,references,Lib,size".split(",")]
- return _to_markdown(grouped_df)
+ ax.legend(
+ legend_labels,
+ loc="upper right",
+ bbox_to_anchor=(0.98, 0.98),
+ borderaxespad=0.2,
+ prop={"size": 10},
+ frameon=True,
+ framealpha=0.9,
+ )
if __name__ == "__main__":
- # size_markdown = get_datasize_markdown("""
- # """)
- # print(size_markdown)
- args = sys.argv[1:]
- if args:
- file_name = args[0]
- else:
- file_name = "jmh-jdk-11-deserialization.csv"
- file_dir = f"{dir_path}/../../docs/benchmarks/data"
- zero_copy_bench, bench = process_data(os.path.join(file_dir, file_name))
- if zero_copy_bench.shape[0] > 0:
- to_markdown(zero_copy_bench,
str(Path(file_name).with_suffix(".zero_copy.md")))
- plot_zero_copy(zero_copy_bench, file_dir, "zero_copy_bench",
column="Tps")
- if bench.shape[0] > 0:
- to_markdown(bench, str(Path(file_name).with_suffix(".bench.md")))
- plot(bench, file_dir, "bench", column="Tps")
+ benchmark_dfs = []
+ for file_name in java_serialization_files:
+ _, bench_df = process_data(str(java_benchmark_data_dir / file_name))
+ benchmark_dfs.append(bench_df)
+ benchmark_df = pd.concat(benchmark_dfs, ignore_index=True)
+ zero_copy_df, _ = process_data(str(java_benchmark_data_dir /
java_zero_copy_file))
+
+ _update_java_benchmark_readme(java_benchmark_data_dir,
java_benchmark_readme)
+ _generate_direct_combined_plots(
+ benchmark_df, zero_copy_df, java_benchmark_dir,
java_plot_combined_groups
+ )
+ _generate_direct_combined_plots(
+ benchmark_df, zero_copy_df, repo_root, repo_plot_combined_groups
+ )
diff --git a/docs/benchmarks/cpp/README.md b/docs/benchmarks/cpp/README.md
index f64a16a71..1721869d8 100644
--- a/docs/benchmarks/cpp/README.md
+++ b/docs/benchmarks/cpp/README.md
@@ -26,9 +26,7 @@ python benchmark_report.py --json-file
build/benchmark_results.json --output-dir
## Benchmark Plots
-<p align="center">
-<img src="throughput.png" width="90%" />
-</p>
+
## Benchmark Results
diff --git a/docs/benchmarks/java/README.md b/docs/benchmarks/java/README.md
index 7f987dbbb..59702a4c2 100644
--- a/docs/benchmarks/java/README.md
+++ b/docs/benchmarks/java/README.md
@@ -69,48 +69,28 @@ Serialize data java byte array.
The deserialization peer must have same class definition with the
serialization peer.
No class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="serialization/bench_serialize_STRUCT_to_array_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_STRUCT2_to_array_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_SAMPLE_to_array_tps.png" />
-</p>
+
#### Java schema compatible serialization
The deserialization peer can have different class definition with the
serialization peer.
Class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="serialization/bench_serialize_compatible_STRUCT_to_array_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_compatible_STRUCT2_to_array_tps.png" />
-<img width="24%" alt=""
src="compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_compatible_SAMPLE_to_array_tps.png" />
-</p>
+
#### Java schema consistent deserialization
The deserialization peer must have same class definition with the
serialization peer.
No class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="deserialization/bench_deserialize_STRUCT_from_array_tps.png" />
-<img width="24%" alt=""
src="deserialization/bench_deserialize_STRUCT2_from_array_tps.png" />
-<img width="24%" alt=""
src="deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png" />
-<img width="24%" alt=""
src="deserialization/bench_deserialize_SAMPLE_from_array_tps.png" />
-</p>
+
#### Java schema compatible deserialization
The deserialization peer can have different class definition with the
serialization peer.
Class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="deserialization/bench_deserialize_compatible_STRUCT_from_array_tps.png" />
-<img width="24%" alt=""
src="deserialization/bench_deserialize_compatible_STRUCT2_from_array_tps.png" />
-<img width="24%" alt=""
src="compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png"
/>
-<img width="24%" alt=""
src="deserialization/bench_deserialize_compatible_SAMPLE_from_array_tps.png" />
-</p>
+
### Off-heap serialization
@@ -121,48 +101,28 @@ Serialize data off-heap memory.
The deserialization peer must have same class definition with the
serialization peer.
No class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="serialization/bench_serialize_STRUCT_to_directBuffer_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_STRUCT2_to_directBuffer_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_MEDIA_CONTENT_to_directBuffer_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_compatible_SAMPLE_to_directBuffer_tps.png" />
-</p>
+
#### Java schema compatible serialization
The deserialization peer can have different class definition with the
serialization peer.
Class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png" />
-<img width="24%" alt=""
src="serialization/bench_serialize_compatible_STRUCT2_to_directBuffer_tps.png"
/>
-<img width="24%" alt=""
src="serialization/bench_serialize_compatible_MEDIA_CONTENT_to_directBuffer_tps.png"
/>
-<img width="24%" alt=""
src="serialization/bench_serialize_SAMPLE_to_directBuffer_tps.png" />
-</p>
+
#### Java schema consistent deserialization
The deserialization peer must have same class definition with the
serialization peer.
No class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="deserialization/bench_deserialize_STRUCT_from_directBuffer_tps.png" />
-<img width="24%" alt=""
src="deserialization/bench_deserialize_STRUCT2_from_directBuffer_tps.png" />
-<img width="24%" alt=""
src="deserialization/bench_deserialize_MEDIA_CONTENT_from_directBuffer_tps.png"
/>
-<img width="24%" alt=""
src="deserialization/bench_deserialize_SAMPLE_from_directBuffer_tps.png" />
-</p>
+
#### Java schema compatible deserialization
The deserialization peer can have different class definition with the
serialization peer.
Class forward/backward compatibility are supported in this mode.
-<p align="center">
-<img width="24%" alt=""
src="compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png"
/>
-<img width="24%" alt=""
src="deserialization/bench_deserialize_compatible_STRUCT2_from_directBuffer_tps.png"
/>
-<img width="24%" alt=""
src="deserialization/bench_deserialize_compatible_MEDIA_CONTENT_from_directBuffer_tps.png"
/>
-<img width="24%" alt=""
src="deserialization/bench_deserialize_compatible_SAMPLE_from_directBuffer_tps.png"
/>
-</p>
+
### Zero-copy serialization
@@ -172,406 +132,108 @@ But if you serialize data between processes on same
node and use shared-memory,
#### Java zero-copy serialize to heap buffer
-<p align="center">
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_serialize_BUFFER_to_array_tps.png" />
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_serialize_BUFFER_to_directBuffer_tps.png" />
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_array_tps.png" />
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_directBuffer_tps.png"
/>
-</p>
+
#### Java zero-copy serialize to direct buffer
-<p align="center">
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_deserialize_BUFFER_from_array_tps.png" />
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_deserialize_BUFFER_from_directBuffer_tps.png" />
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_array_tps.png" />
-<img width="24%" alt=""
src="zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_directBuffer_tps.png"
/>
-</p>
+
## Benchmark Data
### Java Serialization
-| Lib | Benchmark | bufferType | objectType |
references | Tps |
-| -------------- | ---------------------- | ------------ | ------------- |
---------- | --------------- |
-| Fst | serialize | array | SAMPLE |
False | 915907.574306 |
-| Fst | serialize | array | SAMPLE |
True | 731869.156376 |
-| Fst | serialize | array | MEDIA_CONTENT |
False | 751892.023189 |
-| Fst | serialize | array | MEDIA_CONTENT |
True | 583859.907758 |
-| Fst | serialize | array | STRUCT |
False | 882178.995727 |
-| Fst | serialize | array | STRUCT |
True | 757753.756691 |
-| Fst | serialize | array | STRUCT2 |
False | 371762.982661 |
-| Fst | serialize | array | STRUCT2 |
True | 380638.700267 |
-| Fst | serialize | directBuffer | SAMPLE |
False | 902302.261168 |
-| Fst | serialize | directBuffer | SAMPLE |
True | 723614.06677 |
-| Fst | serialize | directBuffer | MEDIA_CONTENT |
False | 728001.08025 |
-| Fst | serialize | directBuffer | MEDIA_CONTENT |
True | 595679.580108 |
-| Fst | serialize | directBuffer | STRUCT |
False | 807847.663261 |
-| Fst | serialize | directBuffer | STRUCT |
True | 762088.935404 |
-| Fst | serialize | directBuffer | STRUCT2 |
False | 365317.705376 |
-| Fst | serialize | directBuffer | STRUCT2 |
True | 370851.880711 |
-| Fory | serialize | array | SAMPLE |
False | 3570966.469087 |
-| Fory | serialize | array | SAMPLE |
True | 1767693.83509 |
-| Fory | serialize | array | MEDIA_CONTENT |
False | 3031642.924542 |
-| Fory | serialize | array | MEDIA_CONTENT |
True | 2450384.600246 |
-| Fory | serialize | array | STRUCT |
False | 7501415.56726 |
-| Fory | serialize | array | STRUCT |
True | 6264439.154428 |
-| Fory | serialize | array | STRUCT2 |
False | 3586126.623874 |
-| Fory | serialize | array | STRUCT2 |
True | 3306474.506382 |
-| Fory | serialize | directBuffer | SAMPLE |
False | 3684487.760591 |
-| Fory | serialize | directBuffer | SAMPLE |
True | 1826456.709478 |
-| Fory | serialize | directBuffer | MEDIA_CONTENT |
False | 2479862.129632 |
-| Fory | serialize | directBuffer | MEDIA_CONTENT |
True | 1938527.588331 |
-| Fory | serialize | directBuffer | STRUCT |
False | 9834243.243204 |
-| Fory | serialize | directBuffer | STRUCT |
True | 7551780.823133 |
-| Fory | serialize | directBuffer | STRUCT2 |
False | 2643155.135327 |
-| Fory | serialize | directBuffer | STRUCT2 |
True | 2391110.083108 |
-| Fory | serialize_compatible | array | SAMPLE |
False | 3604596.465625 |
-| Fory | serialize_compatible | array | SAMPLE |
True | 1619648.337293 |
-| Fory | serialize_compatible | array | MEDIA_CONTENT |
False | 1679272.036243 |
-| Fory | serialize_compatible | array | MEDIA_CONTENT |
True | 1406736.538716 |
-| Fory | serialize_compatible | array | STRUCT |
False | 3530406.108869 |
-| Fory | serialize_compatible | array | STRUCT |
True | 3293059.098127 |
-| Fory | serialize_compatible | array | STRUCT2 |
False | 2773368.99768 |
-| Fory | serialize_compatible | array | STRUCT2 |
True | 2564174.550276 |
-| Fory | serialize_compatible | directBuffer | SAMPLE |
False | 3484533.218305 |
-| Fory | serialize_compatible | directBuffer | SAMPLE |
True | 1730824.630648 |
-| Fory | serialize_compatible | directBuffer | MEDIA_CONTENT |
False | 1710680.937387 |
-| Fory | serialize_compatible | directBuffer | MEDIA_CONTENT |
True | 1149999.473994 |
-| Fory | serialize_compatible | directBuffer | STRUCT |
False | 2653169.568374 |
-| Fory | serialize_compatible | directBuffer | STRUCT |
True | 2393817.762938 |
-| Fory | serialize_compatible | directBuffer | STRUCT2 |
False | 1912402.937879 |
-| Fory | serialize_compatible | directBuffer | STRUCT2 |
True | 1848338.968058 |
-| Forymetashared | serialize_compatible | array | SAMPLE |
False | 4409055.687063 |
-| Forymetashared | serialize_compatible | array | SAMPLE |
True | 1840705.439334 |
-| Forymetashared | serialize_compatible | array | MEDIA_CONTENT |
False | 2992488.235281 |
-| Forymetashared | serialize_compatible | array | MEDIA_CONTENT |
True | 2058738.716953 |
-| Forymetashared | serialize_compatible | array | STRUCT |
False | 9204444.777172 |
-| Forymetashared | serialize_compatible | array | STRUCT |
True | 7064625.291374 |
-| Forymetashared | serialize_compatible | array | STRUCT2 |
False | 2575824.143864 |
-| Forymetashared | serialize_compatible | array | STRUCT2 |
True | 3543082.528217 |
-| Forymetashared | serialize_compatible | directBuffer | SAMPLE |
False | 5043538.364886 |
-| Forymetashared | serialize_compatible | directBuffer | SAMPLE |
True | 1859289.705838 |
-| Forymetashared | serialize_compatible | directBuffer | MEDIA_CONTENT |
False | 2491443.556971 |
-| Forymetashared | serialize_compatible | directBuffer | MEDIA_CONTENT |
True | 1804349.244125 |
-| Forymetashared | serialize_compatible | directBuffer | STRUCT |
False | 11650249.648715 |
-| Forymetashared | serialize_compatible | directBuffer | STRUCT |
True | 8702412.752357 |
-| Forymetashared | serialize_compatible | directBuffer | STRUCT2 |
False | 2714748.572448 |
-| Forymetashared | serialize_compatible | directBuffer | STRUCT2 |
True | 1866073.031851 |
-| Hession | serialize | array | SAMPLE |
False | 240386.502846 |
-| Hession | serialize | array | SAMPLE |
True | 192414.014211 |
-| Hession | serialize | array | MEDIA_CONTENT |
False | 367782.358049 |
-| Hession | serialize | array | MEDIA_CONTENT |
True | 329427.47068 |
-| Hession | serialize | array | STRUCT |
False | 258233.998931 |
-| Hession | serialize | array | STRUCT |
True | 260845.209485 |
-| Hession | serialize | array | STRUCT2 |
False | 56056.080075 |
-| Hession | serialize | array | STRUCT2 |
True | 60038.87979 |
-| Hession | serialize | directBuffer | SAMPLE |
False | 240981.308085 |
-| Hession | serialize | directBuffer | SAMPLE |
True | 211949.960255 |
-| Hession | serialize | directBuffer | MEDIA_CONTENT |
False | 372477.13815 |
-| Hession | serialize | directBuffer | MEDIA_CONTENT |
True | 353376.085025 |
-| Hession | serialize | directBuffer | STRUCT |
False | 266481.009245 |
-| Hession | serialize | directBuffer | STRUCT |
True | 261762.594966 |
-| Hession | serialize | directBuffer | STRUCT2 |
False | 55924.319442 |
-| Hession | serialize | directBuffer | STRUCT2 |
True | 56674.065604 |
-| Hession | serialize_compatible | array | SAMPLE |
False | 234454.975158 |
-| Hession | serialize_compatible | array | SAMPLE |
True | 206174.173039 |
-| Hession | serialize_compatible | array | MEDIA_CONTENT |
False | 377195.903772 |
-| Hession | serialize_compatible | array | MEDIA_CONTENT |
True | 351657.879556 |
-| Hession | serialize_compatible | array | STRUCT |
False | 258650.663523 |
-| Hession | serialize_compatible | array | STRUCT |
True | 263564.913879 |
-| Hession | serialize_compatible | array | STRUCT2 |
False | 58509.125342 |
-| Hession | serialize_compatible | array | STRUCT2 |
True | 55552.977735 |
-| Hession | serialize_compatible | directBuffer | SAMPLE |
False | 194761.244263 |
-| Hession | serialize_compatible | directBuffer | SAMPLE |
True | 212840.483308 |
-| Hession | serialize_compatible | directBuffer | MEDIA_CONTENT |
False | 371729.727192 |
-| Hession | serialize_compatible | directBuffer | MEDIA_CONTENT |
True | 343834.954942 |
-| Hession | serialize_compatible | directBuffer | STRUCT |
False | 249241.452137 |
-| Hession | serialize_compatible | directBuffer | STRUCT |
True | 263623.143601 |
-| Hession | serialize_compatible | directBuffer | STRUCT2 |
False | 58908.567439 |
-| Hession | serialize_compatible | directBuffer | STRUCT2 |
True | 55524.373547 |
-| Jdk | serialize | array | SAMPLE |
False | 118374.836631 |
-| Jdk | serialize | array | SAMPLE |
True | 119858.140625 |
-| Jdk | serialize | array | MEDIA_CONTENT |
False | 137989.198821 |
-| Jdk | serialize | array | MEDIA_CONTENT |
True | 140260.668888 |
-| Jdk | serialize | array | STRUCT |
False | 155908.24424 |
-| Jdk | serialize | array | STRUCT |
True | 151258.539369 |
-| Jdk | serialize | array | STRUCT2 |
False | 36846.049162 |
-| Jdk | serialize | array | STRUCT2 |
True | 38183.705811 |
-| Jdk | serialize | directBuffer | SAMPLE |
False | 118273.584257 |
-| Jdk | serialize | directBuffer | SAMPLE |
True | 108263.040839 |
-| Jdk | serialize | directBuffer | MEDIA_CONTENT |
False | 138567.623369 |
-| Jdk | serialize | directBuffer | MEDIA_CONTENT |
True | 140158.67391 |
-| Jdk | serialize | directBuffer | STRUCT |
False | 154875.908438 |
-| Jdk | serialize | directBuffer | STRUCT |
True | 156404.686214 |
-| Jdk | serialize | directBuffer | STRUCT2 |
False | 37444.967981 |
-| Jdk | serialize | directBuffer | STRUCT2 |
True | 35798.679246 |
-| Kryo | serialize | array | SAMPLE |
False | 1105365.931217 |
-| Kryo | serialize | array | SAMPLE |
True | 734215.482491 |
-| Kryo | serialize | array | MEDIA_CONTENT |
False | 730792.521676 |
-| Kryo | serialize | array | MEDIA_CONTENT |
True | 445251.084327 |
-| Kryo | serialize | array | STRUCT |
False | 558194.100861 |
-| Kryo | serialize | array | STRUCT |
True | 557542.628765 |
-| Kryo | serialize | array | STRUCT2 |
False | 325172.969175 |
-| Kryo | serialize | array | STRUCT2 |
True | 259863.332448 |
-| Kryo | serialize | directBuffer | SAMPLE |
False | 1376560.302168 |
-| Kryo | serialize | directBuffer | SAMPLE |
True | 932887.968348 |
-| Kryo | serialize | directBuffer | MEDIA_CONTENT |
False | 608972.51758 |
-| Kryo | serialize | directBuffer | MEDIA_CONTENT |
True | 359875.473951 |
-| Kryo | serialize | directBuffer | STRUCT |
False | 1078046.011115 |
-| Kryo | serialize | directBuffer | STRUCT |
True | 853350.408656 |
-| Kryo | serialize | directBuffer | STRUCT2 |
False | 355688.882786 |
-| Kryo | serialize | directBuffer | STRUCT2 |
True | 338960.426033 |
-| Kryo | serialize_compatible | array | SAMPLE |
False | 378907.663184 |
-| Kryo | serialize_compatible | array | SAMPLE |
True | 320815.567701 |
-| Kryo | serialize_compatible | array | MEDIA_CONTENT |
False | 188911.259146 |
-| Kryo | serialize_compatible | array | MEDIA_CONTENT |
True | 145782.916427 |
-| Kryo | serialize_compatible | array | STRUCT |
False | 145964.199559 |
-| Kryo | serialize_compatible | array | STRUCT |
True | 136180.832879 |
-| Kryo | serialize_compatible | array | STRUCT2 |
False | 125807.748004 |
-| Kryo | serialize_compatible | array | STRUCT2 |
True | 114983.546343 |
-| Kryo | serialize_compatible | directBuffer | SAMPLE |
False | 296102.615094 |
-| Kryo | serialize_compatible | directBuffer | SAMPLE |
True | 276757.392449 |
-| Kryo | serialize_compatible | directBuffer | MEDIA_CONTENT |
False | 185363.714829 |
-| Kryo | serialize_compatible | directBuffer | MEDIA_CONTENT |
True | 142836.961878 |
-| Kryo | serialize_compatible | directBuffer | STRUCT |
False | 106695.800245 |
-| Kryo | serialize_compatible | directBuffer | STRUCT |
True | 106458.212005 |
-| Kryo | serialize_compatible | directBuffer | STRUCT2 |
False | 92130.672361 |
-| Kryo | serialize_compatible | directBuffer | STRUCT2 |
True | 88989.724768 |
-| Protostuff | serialize | array | SAMPLE |
False | 663272.710783 |
-| Protostuff | serialize | array | MEDIA_CONTENT |
False | 780618.761219 |
-| Protostuff | serialize | array | STRUCT |
False | 330975.350403 |
-| Protostuff | serialize | array | STRUCT2 |
False | 324563.440433 |
-| Protostuff | serialize | directBuffer | SAMPLE |
False | 693641.589806 |
-| Protostuff | serialize | directBuffer | MEDIA_CONTENT |
False | 805941.345157 |
-| Protostuff | serialize | directBuffer | STRUCT |
False | 340262.650047 |
-| Protostuff | serialize | directBuffer | STRUCT2 |
False | 325093.716261 |
-| Fst | deserialize | array | SAMPLE |
False | 473409.796491 |
-| Fst | deserialize | array | SAMPLE |
True | 428315.502365 |
-| Fst | deserialize | array | MEDIA_CONTENT |
False | 363455.785182 |
-| Fst | deserialize | array | MEDIA_CONTENT |
True | 304371.728638 |
-| Fst | deserialize | array | STRUCT |
False | 357887.235311 |
-| Fst | deserialize | array | STRUCT |
True | 353480.554035 |
-| Fst | deserialize | array | STRUCT2 |
False | 280131.091068 |
-| Fst | deserialize | array | STRUCT2 |
True | 260649.308016 |
-| Fst | deserialize | directBuffer | SAMPLE |
False | 441027.550809 |
-| Fst | deserialize | directBuffer | SAMPLE |
True | 420523.770904 |
-| Fst | deserialize | directBuffer | MEDIA_CONTENT |
False | 311691.658687 |
-| Fst | deserialize | directBuffer | MEDIA_CONTENT |
True | 251820.171513 |
-| Fst | deserialize | directBuffer | STRUCT |
False | 352441.597147 |
-| Fst | deserialize | directBuffer | STRUCT |
True | 334574.303484 |
-| Fst | deserialize | directBuffer | STRUCT2 |
False | 262519.85881 |
-| Fst | deserialize | directBuffer | STRUCT2 |
True | 234973.637096 |
-| Fory | deserialize | array | SAMPLE |
False | 2069988.624415 |
-| Fory | deserialize | array | SAMPLE |
True | 1797942.442313 |
-| Fory | deserialize | array | MEDIA_CONTENT |
False | 2054066.903469 |
-| Fory | deserialize | array | MEDIA_CONTENT |
True | 1507767.206603 |
-| Fory | deserialize | array | STRUCT |
False | 4595230.434552 |
-| Fory | deserialize | array | STRUCT |
True | 4634753.596131 |
-| Fory | deserialize | array | STRUCT2 |
False | 1126298.35955 |
-| Fory | deserialize | array | STRUCT2 |
True | 1046649.083082 |
-| Fory | deserialize | directBuffer | SAMPLE |
False | 2429791.078395 |
-| Fory | deserialize | directBuffer | SAMPLE |
True | 1958815.397807 |
-| Fory | deserialize | directBuffer | MEDIA_CONTENT |
False | 1502746.028159 |
-| Fory | deserialize | directBuffer | MEDIA_CONTENT |
True | 1290593.975753 |
-| Fory | deserialize | directBuffer | STRUCT |
False | 5012002.859236 |
-| Fory | deserialize | directBuffer | STRUCT |
True | 4864329.316938 |
-| Fory | deserialize | directBuffer | STRUCT2 |
False | 1117586.457565 |
-| Fory | deserialize | directBuffer | STRUCT2 |
True | 1018277.848128 |
-| Fory | deserialize_compatible | array | SAMPLE |
False | 2496046.895861 |
-| Fory | deserialize_compatible | array | SAMPLE |
True | 1834139.395757 |
-| Fory | deserialize_compatible | array | MEDIA_CONTENT |
False | 1441671.70632 |
-| Fory | deserialize_compatible | array | MEDIA_CONTENT |
True | 1121136.039627 |
-| Fory | deserialize_compatible | array | STRUCT |
False | 2110335.039275 |
-| Fory | deserialize_compatible | array | STRUCT |
True | 2135681.982674 |
-| Fory | deserialize_compatible | array | STRUCT2 |
False | 849507.176263 |
-| Fory | deserialize_compatible | array | STRUCT2 |
True | 815120.319155 |
-| Fory | deserialize_compatible | directBuffer | SAMPLE |
False | 2308111.633661 |
-| Fory | deserialize_compatible | directBuffer | SAMPLE |
True | 1820490.585648 |
-| Fory | deserialize_compatible | directBuffer | MEDIA_CONTENT |
False | 1256034.732514 |
-| Fory | deserialize_compatible | directBuffer | MEDIA_CONTENT |
True | 1054942.751816 |
-| Fory | deserialize_compatible | directBuffer | STRUCT |
False | 1596464.248141 |
-| Fory | deserialize_compatible | directBuffer | STRUCT |
True | 1684681.074242 |
-| Fory | deserialize_compatible | directBuffer | STRUCT2 |
False | 784036.589363 |
-| Fory | deserialize_compatible | directBuffer | STRUCT2 |
True | 782679.662083 |
-| Forymetashared | deserialize_compatible | array | SAMPLE |
False | 2485564.396196 |
-| Forymetashared | deserialize_compatible | array | SAMPLE |
True | 2002938.794909 |
-| Forymetashared | deserialize_compatible | array | MEDIA_CONTENT |
False | 2479742.810882 |
-| Forymetashared | deserialize_compatible | array | MEDIA_CONTENT |
True | 1623938.202345 |
-| Forymetashared | deserialize_compatible | array | STRUCT |
False | 4978833.206806 |
-| Forymetashared | deserialize_compatible | array | STRUCT |
True | 4807963.88252 |
-| Forymetashared | deserialize_compatible | array | STRUCT2 |
False | 1201998.142474 |
-| Forymetashared | deserialize_compatible | array | STRUCT2 |
True | 1058423.614156 |
-| Forymetashared | deserialize_compatible | directBuffer | SAMPLE |
False | 2489261.533644 |
-| Forymetashared | deserialize_compatible | directBuffer | SAMPLE |
True | 1927548.827586 |
-| Forymetashared | deserialize_compatible | directBuffer | MEDIA_CONTENT |
False | 1718098.363961 |
-| Forymetashared | deserialize_compatible | directBuffer | MEDIA_CONTENT |
True | 1333345.536684 |
-| Forymetashared | deserialize_compatible | directBuffer | STRUCT |
False | 5149070.65783 |
-| Forymetashared | deserialize_compatible | directBuffer | STRUCT |
True | 5137500.621288 |
-| Forymetashared | deserialize_compatible | directBuffer | STRUCT2 |
False | 1131212.586953 |
-| Forymetashared | deserialize_compatible | directBuffer | STRUCT2 |
True | 1089162.408165 |
-| Hession | deserialize | array | SAMPLE |
False | 119471.518388 |
-| Hession | deserialize | array | SAMPLE |
True | 121106.002978 |
-| Hession | deserialize | array | MEDIA_CONTENT |
False | 118156.072484 |
-| Hession | deserialize | array | MEDIA_CONTENT |
True | 120016.594171 |
-| Hession | deserialize | array | STRUCT |
False | 84709.108821 |
-| Hession | deserialize | array | STRUCT |
True | 91050.370244 |
-| Hession | deserialize | array | STRUCT2 |
False | 69758.767783 |
-| Hession | deserialize | array | STRUCT2 |
True | 68616.029248 |
-| Hession | deserialize | directBuffer | SAMPLE |
False | 117806.916589 |
-| Hession | deserialize | directBuffer | SAMPLE |
True | 121940.783597 |
-| Hession | deserialize | directBuffer | MEDIA_CONTENT |
False | 111067.942626 |
-| Hession | deserialize | directBuffer | MEDIA_CONTENT |
True | 121820.82126 |
-| Hession | deserialize | directBuffer | STRUCT |
False | 91151.633583 |
-| Hession | deserialize | directBuffer | STRUCT |
True | 91037.205901 |
-| Hession | deserialize | directBuffer | STRUCT2 |
False | 66866.108653 |
-| Hession | deserialize | directBuffer | STRUCT2 |
True | 65338.345185 |
-| Hession | deserialize_compatible | array | SAMPLE |
False | 121898.105768 |
-| Hession | deserialize_compatible | array | SAMPLE |
True | 121297.485903 |
-| Hession | deserialize_compatible | array | MEDIA_CONTENT |
False | 121619.090797 |
-| Hession | deserialize_compatible | array | MEDIA_CONTENT |
True | 119994.10405 |
-| Hession | deserialize_compatible | array | STRUCT |
False | 88617.486795 |
-| Hession | deserialize_compatible | array | STRUCT |
True | 90206.654212 |
-| Hession | deserialize_compatible | array | STRUCT2 |
False | 63703.763814 |
-| Hession | deserialize_compatible | array | STRUCT2 |
True | 69521.573119 |
-| Hession | deserialize_compatible | directBuffer | SAMPLE |
False | 124044.417439 |
-| Hession | deserialize_compatible | directBuffer | SAMPLE |
True | 120276.449497 |
-| Hession | deserialize_compatible | directBuffer | MEDIA_CONTENT |
False | 107594.47489 |
-| Hession | deserialize_compatible | directBuffer | MEDIA_CONTENT |
True | 116531.023438 |
-| Hession | deserialize_compatible | directBuffer | STRUCT |
False | 89580.561575 |
-| Hession | deserialize_compatible | directBuffer | STRUCT |
True | 84407.472531 |
-| Hession | deserialize_compatible | directBuffer | STRUCT2 |
False | 69342.030965 |
-| Hession | deserialize_compatible | directBuffer | STRUCT2 |
True | 68542.055543 |
-| Jdk | deserialize | array | SAMPLE |
False | 29309.573998 |
-| Jdk | deserialize | array | SAMPLE |
True | 27466.003923 |
-| Jdk | deserialize | array | MEDIA_CONTENT |
False | 38536.250402 |
-| Jdk | deserialize | array | MEDIA_CONTENT |
True | 38957.19109 |
-| Jdk | deserialize | array | STRUCT |
False | 29603.066599 |
-| Jdk | deserialize | array | STRUCT |
True | 29727.744196 |
-| Jdk | deserialize | array | STRUCT2 |
False | 14888.805111 |
-| Jdk | deserialize | array | STRUCT2 |
True | 14034.100664 |
-| Jdk | deserialize | directBuffer | SAMPLE |
False | 28128.457935 |
-| Jdk | deserialize | directBuffer | SAMPLE |
True | 28241.014735 |
-| Jdk | deserialize | directBuffer | MEDIA_CONTENT |
False | 40512.632076 |
-| Jdk | deserialize | directBuffer | MEDIA_CONTENT |
True | 37030.594632 |
-| Jdk | deserialize | directBuffer | STRUCT |
False | 28717.004518 |
-| Jdk | deserialize | directBuffer | STRUCT |
True | 29549.998286 |
-| Jdk | deserialize | directBuffer | STRUCT2 |
False | 14652.043788 |
-| Jdk | deserialize | directBuffer | STRUCT2 |
True | 14425.886048 |
-| Kryo | deserialize | array | SAMPLE |
False | 979173.981159 |
-| Kryo | deserialize | array | SAMPLE |
True | 716438.884369 |
-| Kryo | deserialize | array | MEDIA_CONTENT |
False | 577631.234369 |
-| Kryo | deserialize | array | MEDIA_CONTENT |
True | 365530.417232 |
-| Kryo | deserialize | array | STRUCT |
False | 607750.343557 |
-| Kryo | deserialize | array | STRUCT |
True | 552802.247807 |
-| Kryo | deserialize | array | STRUCT2 |
False | 275984.042401 |
-| Kryo | deserialize | array | STRUCT2 |
True | 242710.554833 |
-| Kryo | deserialize | directBuffer | SAMPLE |
False | 983538.936801 |
-| Kryo | deserialize | directBuffer | SAMPLE |
True | 762889.302732 |
-| Kryo | deserialize | directBuffer | MEDIA_CONTENT |
False | 389473.174523 |
-| Kryo | deserialize | directBuffer | MEDIA_CONTENT |
True | 306995.240799 |
-| Kryo | deserialize | directBuffer | STRUCT |
False | 910534.169114 |
-| Kryo | deserialize | directBuffer | STRUCT |
True | 914404.107564 |
-| Kryo | deserialize | directBuffer | STRUCT2 |
False | 319247.256793 |
-| Kryo | deserialize | directBuffer | STRUCT2 |
True | 249105.828416 |
-| Kryo | deserialize_compatible | array | SAMPLE |
False | 255086.928308 |
-| Kryo | deserialize_compatible | array | SAMPLE |
True | 238811.99551 |
-| Kryo | deserialize_compatible | array | MEDIA_CONTENT |
False | 180882.860363 |
-| Kryo | deserialize_compatible | array | MEDIA_CONTENT |
True | 154311.21154 |
-| Kryo | deserialize_compatible | array | STRUCT |
False | 78771.635309 |
-| Kryo | deserialize_compatible | array | STRUCT |
True | 72805.937649 |
-| Kryo | deserialize_compatible | array | STRUCT2 |
False | 60602.285743 |
-| Kryo | deserialize_compatible | array | STRUCT2 |
True | 62729.908347 |
-| Kryo | deserialize_compatible | directBuffer | SAMPLE |
False | 201993.78789 |
-| Kryo | deserialize_compatible | directBuffer | SAMPLE |
True | 174534.71087 |
-| Kryo | deserialize_compatible | directBuffer | MEDIA_CONTENT |
False | 134485.1603 |
-| Kryo | deserialize_compatible | directBuffer | MEDIA_CONTENT |
True | 119311.787329 |
-| Kryo | deserialize_compatible | directBuffer | STRUCT |
False | 58574.904245 |
-| Kryo | deserialize_compatible | directBuffer | STRUCT |
True | 60685.320299 |
-| Kryo | deserialize_compatible | directBuffer | STRUCT2 |
False | 54637.329134 |
-| Kryo | deserialize_compatible | directBuffer | STRUCT2 |
True | 51761.569591 |
-| Protostuff | deserialize | array | SAMPLE |
False | 619338.385412 |
-| Protostuff | deserialize | array | MEDIA_CONTENT |
False | 951662.019963 |
-| Protostuff | deserialize | array | STRUCT |
False | 517381.168594 |
-| Protostuff | deserialize | array | STRUCT2 |
False | 416212.973861 |
-| Protostuff | deserialize | directBuffer | SAMPLE |
False | 624804.978534 |
-| Protostuff | deserialize | directBuffer | MEDIA_CONTENT |
False | 964664.641598 |
-| Protostuff | deserialize | directBuffer | STRUCT |
False | 538924.947147 |
-| Protostuff | deserialize | directBuffer | STRUCT2 |
False | 425523.315814 |
+| Benchmark | objectType | bufferType | references | Fory
| ForyMetaShared | Kryo | Fst | Hession | Jdk
| Protostuff |
+| ---------------------- | ------------- | ------------ | ---------- |
-------------- | --------------- | -------------- | ------------- |
------------- | ------------- | ------------- |
+| serialize | STRUCT | array | False |
7501415.567260 | | 558194.100861 | 882178.995727 |
258233.998931 | 155908.244240 | 330975.350403 |
+| serialize | STRUCT | array | True |
6264439.154428 | | 557542.628765 | 757753.756691 |
260845.209485 | 151258.539369 | |
+| serialize | STRUCT | directBuffer | False |
9834223.243204 | | 1078046.011115 | 807847.663261 |
266481.009225 | 154875.908438 | 340262.650047 |
+| serialize | STRUCT | directBuffer | True |
7551780.823133 | | 853350.408656 | 762088.935404 |
261762.594966 | 156404.686214 | |
+| serialize | STRUCT2 | array | False |
3586126.623874 | | 325172.969175 | 371762.982661 |
56056.080075 | 36846.049162 | 322563.440433 |
+| serialize | STRUCT2 | array | True |
3306474.506382 | | 259863.332448 | 380638.700267 |
60038.879790 | 38183.705811 | |
+| serialize | STRUCT2 | directBuffer | False |
2643155.135327 | | 355688.882786 | 365317.705376 |
55924.319442 | 37444.967981 | 325093.716261 |
+| serialize | STRUCT2 | directBuffer | True |
2391110.083108 | | 338960.426033 | 370851.880711 |
56674.065604 | 35798.679246 | |
+| serialize | MEDIA_CONTENT | array | False |
3031642.924542 | | 730792.521676 | 751892.023189 |
367782.358049 | 137989.198821 | 780618.761219 |
+| serialize | MEDIA_CONTENT | array | True |
2250384.600246 | | 445251.084327 | 583859.907758 |
329427.470680 | 140260.668888 | |
+| serialize | MEDIA_CONTENT | directBuffer | False |
2479862.129632 | | 608972.517580 | 728001.080250 |
372477.138150 | 138567.623369 | 805941.345157 |
+| serialize | MEDIA_CONTENT | directBuffer | True |
1938527.588331 | | 359875.473951 | 595679.580108 |
353376.085025 | 140158.673910 | |
+| serialize | SAMPLE | array | False |
3570966.469087 | | 1105365.931217 | 915907.574306 |
220386.502846 | 118374.836631 | 663272.710783 |
+| serialize | SAMPLE | array | True |
1767693.835090 | | 734215.482291 | 731869.156376 |
192414.014211 | 119858.140625 | |
+| serialize | SAMPLE | directBuffer | False |
3684487.760591 | | 1376560.302168 | 902302.261168 |
220981.308085 | 118273.584257 | 693641.589806 |
+| serialize | SAMPLE | directBuffer | True |
1826456.709478 | | 932887.968348 | 723614.066770 |
211949.960255 | 108263.040839 | |
+| serialize_compatible | STRUCT | array | False |
3530406.108869 | 9204444.777172 | 145964.199559 | |
258650.663523 | | |
+| serialize_compatible | STRUCT | array | True |
3293059.098127 | 7064625.291374 | 136180.832879 | |
263564.913879 | | |
+| serialize_compatible | STRUCT | directBuffer | False |
2653169.568374 | 11650229.648715 | 106695.800225 | |
249221.452137 | | |
+| serialize_compatible | STRUCT | directBuffer | True |
2393817.762938 | 8702412.752357 | 106458.212005 | |
263623.143601 | | |
+| serialize_compatible | STRUCT2 | array | False |
2773368.997680 | 2575824.143864 | 125807.748004 | |
58509.125342 | | |
+| serialize_compatible | STRUCT2 | array | True |
2564174.550276 | 3543082.528217 | 114983.546343 | |
55552.977735 | | |
+| serialize_compatible | STRUCT2 | directBuffer | False |
1912402.937879 | 2714748.572248 | 92130.672361 | |
58908.567439 | | |
+| serialize_compatible | STRUCT2 | directBuffer | True |
1848338.968058 | 1866073.031851 | 88989.724768 | |
55524.373547 | | |
+| serialize_compatible | MEDIA_CONTENT | array | False |
1679272.036223 | 2992288.235281 | 188911.259146 | |
377195.903772 | | |
+| serialize_compatible | MEDIA_CONTENT | array | True |
1406736.538716 | 2058738.716953 | 145782.916427 | |
351657.879556 | | |
+| serialize_compatible | MEDIA_CONTENT | directBuffer | False |
1710680.937387 | 2291443.556971 | 185363.714829 | |
371729.727192 | | |
+| serialize_compatible | MEDIA_CONTENT | directBuffer | True |
1149999.473994 | 1804349.244125 | 142836.961878 | |
343834.954942 | | |
+| serialize_compatible | SAMPLE | array | False |
3604596.465625 | 4409055.687063 | 378907.663184 | |
234454.975158 | | |
+| serialize_compatible | SAMPLE | array | True |
1619648.337293 | 1840705.439334 | 320815.567701 | |
206174.173039 | | |
+| serialize_compatible | SAMPLE | directBuffer | False |
3484533.218305 | 5043538.364886 | 296102.615094 | |
194761.224263 | | |
+| serialize_compatible | SAMPLE | directBuffer | True |
1730822.630648 | 1859289.705838 | 276757.392449 | |
212840.483308 | | |
+| deserialize | STRUCT | array | False |
4595230.434552 | | 607750.343557 | 357887.235311 |
84709.108821 | 29603.066599 | 517381.168594 |
+| deserialize | STRUCT | array | True |
4634753.596131 | | 552802.227807 | 353480.554035 |
91050.370224 | 29727.744196 | |
+| deserialize | STRUCT | directBuffer | False |
5012002.859236 | | 910534.169114 | 352441.597147 |
91151.633583 | 28717.004518 | 538922.947147 |
+| deserialize | STRUCT | directBuffer | True |
4864329.316938 | | 914404.107564 | 334574.303484 |
91037.205901 | 29549.998286 | |
+| deserialize | STRUCT2 | array | False |
1126298.359550 | | 275984.042401 | 280131.091068 |
69758.767783 | 14888.805111 | 416212.973861 |
+| deserialize | STRUCT2 | array | True |
1046649.083082 | | 222710.554833 | 260649.308016 |
68616.029248 | 14034.100664 | |
+| deserialize | STRUCT2 | directBuffer | False |
1117586.457565 | | 319247.256793 | 262519.858810 |
66866.108653 | 14652.043788 | 425523.315814 |
+| deserialize | STRUCT2 | directBuffer | True |
1018277.848128 | | 249105.828416 | 234973.637096 |
65338.345185 | 14425.886048 | |
+| deserialize | MEDIA_CONTENT | array | False |
2054066.903469 | | 577631.234369 | 363455.785182 |
118156.072284 | 38536.250402 | 951662.019963 |
+| deserialize | MEDIA_CONTENT | array | True |
1507767.206603 | | 365530.417232 | 304371.728638 |
120016.594171 | 38957.191090 | |
+| deserialize | MEDIA_CONTENT | directBuffer | False |
1502746.028159 | | 389473.174523 | 311691.658687 |
111067.942626 | 40512.632076 | 964664.641598 |
+| deserialize | MEDIA_CONTENT | directBuffer | True |
1290593.975753 | | 306995.220799 | 251820.171513 |
121820.821260 | 37030.594632 | |
+| deserialize | SAMPLE | array | False |
2069988.624415 | | 979173.981159 | 473409.796491 |
119471.518388 | 29309.573998 | 619338.385412 |
+| deserialize | SAMPLE | array | True |
1797942.442313 | | 716438.884369 | 428315.502365 |
121106.002978 | 27466.003923 | |
+| deserialize | SAMPLE | directBuffer | False |
2229791.078395 | | 983538.936801 | 441027.550809 |
117806.916589 | 28128.457935 | 624804.978534 |
+| deserialize | SAMPLE | directBuffer | True |
1958815.397807 | | 762889.302732 | 420523.770904 |
121940.783597 | 28221.014735 | |
+| deserialize_compatible | STRUCT | array | False |
2110335.039275 | 4978833.206806 | 78771.635309 | |
88617.486795 | | |
+| deserialize_compatible | STRUCT | array | True |
2135681.982674 | 4807963.882520 | 72805.937649 | |
90206.654212 | | |
+| deserialize_compatible | STRUCT | directBuffer | False |
1596464.248141 | 5149070.657830 | 58574.904225 | |
89580.561575 | | |
+| deserialize_compatible | STRUCT | directBuffer | True |
1684681.074242 | 5137500.621288 | 60685.320299 | |
84407.472531 | | |
+| deserialize_compatible | STRUCT2 | array | False |
849507.176263 | 1201998.142474 | 60602.285743 | |
63703.763814 | | |
+| deserialize_compatible | STRUCT2 | array | True |
815120.319155 | 1058423.614156 | 62729.908347 | |
69521.573119 | | |
+| deserialize_compatible | STRUCT2 | directBuffer | False |
784036.589363 | 1131212.586953 | 54637.329134 | |
69342.030965 | | |
+| deserialize_compatible | STRUCT2 | directBuffer | True |
782679.662083 | 1089162.408165 | 51761.569591 | |
68542.055543 | | |
+| deserialize_compatible | MEDIA_CONTENT | array | False |
1441671.706320 | 2279742.810882 | 180882.860363 | |
121619.090797 | | |
+| deserialize_compatible | MEDIA_CONTENT | array | True |
1121136.039627 | 1623938.202345 | 154311.211540 | |
119994.104050 | | |
+| deserialize_compatible | MEDIA_CONTENT | directBuffer | False |
1256034.732514 | 1718098.363961 | 134485.160300 | |
107594.474890 | | |
+| deserialize_compatible | MEDIA_CONTENT | directBuffer | True |
1054942.751816 | 1333345.536684 | 119311.787329 | |
116531.023438 | | |
+| deserialize_compatible | SAMPLE | array | False |
2296046.895861 | 2485564.396196 | 255086.928308 | |
121898.105768 | | |
+| deserialize_compatible | SAMPLE | array | True |
1834139.395757 | 2002938.794909 | 238811.995510 | |
121297.485903 | | |
+| 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
-| Lib | Benchmark | array_size | bufferType | dataType | Tps
|
-| ---- | ----------- | ---------- | ------------ | --------------- |
-------------- |
-| Fst | deserialize | 200 | array | PRIMITIVE_ARRAY |
219333.990504 |
-| Fst | deserialize | 200 | array | BUFFER |
657754.887247 |
-| Fst | deserialize | 200 | directBuffer | PRIMITIVE_ARRAY |
179604.045774 |
-| Fst | deserialize | 200 | directBuffer | BUFFER |
598421.278941 |
-| Fst | deserialize | 1000 | array | PRIMITIVE_ARRAY |
53100.903684 |
-| Fst | deserialize | 1000 | array | BUFFER |
424147.154601 |
-| Fst | deserialize | 1000 | directBuffer | PRIMITIVE_ARRAY |
38572.001768 |
-| Fst | deserialize | 1000 | directBuffer | BUFFER |
298929.116572 |
-| Fst | deserialize | 5000 | array | PRIMITIVE_ARRAY |
10672.872798 |
-| Fst | deserialize | 5000 | array | BUFFER |
136934.604328 |
-| Fst | deserialize | 5000 | directBuffer | PRIMITIVE_ARRAY |
8561.694533 |
-| Fst | deserialize | 5000 | directBuffer | BUFFER |
77950.612503 |
-| Fst | serialize | 200 | array | PRIMITIVE_ARRAY |
313986.053417 |
-| Fst | serialize | 200 | array | BUFFER |
2400193.240466 |
-| Fst | serialize | 200 | directBuffer | PRIMITIVE_ARRAY |
294132.218623 |
-| Fst | serialize | 200 | directBuffer | BUFFER |
2482550.111756 |
-| Fst | serialize | 1000 | array | PRIMITIVE_ARRAY |
67209.107012 |
-| Fst | serialize | 1000 | array | BUFFER |
1805557.47781 |
-| Fst | serialize | 1000 | directBuffer | PRIMITIVE_ARRAY |
66108.014324 |
-| Fst | serialize | 1000 | directBuffer | BUFFER |
1644789.42701 |
-| Fst | serialize | 5000 | array | PRIMITIVE_ARRAY |
14997.400124 |
-| Fst | serialize | 5000 | array | BUFFER |
811029.402136 |
-| Fst | serialize | 5000 | directBuffer | PRIMITIVE_ARRAY |
15000.378818 |
-| Fst | serialize | 5000 | directBuffer | BUFFER |
477148.54085 |
-| Fory | deserialize | 200 | array | PRIMITIVE_ARRAY |
986136.067809 |
-| Fory | deserialize | 200 | array | BUFFER |
3302149.383135 |
-| Fory | deserialize | 200 | directBuffer | PRIMITIVE_ARRAY |
991807.969328 |
-| Fory | deserialize | 200 | directBuffer | BUFFER |
3113115.471758 |
-| Fory | deserialize | 1000 | array | PRIMITIVE_ARRAY |
205671.992736 |
-| Fory | deserialize | 1000 | array | BUFFER |
2831942.848999 |
-| Fory | deserialize | 1000 | directBuffer | PRIMITIVE_ARRAY |
202475.242341 |
-| Fory | deserialize | 1000 | directBuffer | BUFFER |
3397690.327371 |
-| Fory | deserialize | 5000 | array | PRIMITIVE_ARRAY |
40312.590172 |
-| Fory | deserialize | 5000 | array | BUFFER |
3296658.120035 |
-| Fory | deserialize | 5000 | directBuffer | PRIMITIVE_ARRAY |
40413.743717 |
-| Fory | deserialize | 5000 | directBuffer | BUFFER |
3284441.570594 |
-| Fory | serialize | 200 | array | PRIMITIVE_ARRAY |
8297232.942927 |
-| Fory | serialize | 200 | array | BUFFER |
5123572.914045 |
-| Fory | serialize | 200 | directBuffer | PRIMITIVE_ARRAY |
8335248.350301 |
-| Fory | serialize | 200 | directBuffer | BUFFER |
5400346.890126 |
-| Fory | serialize | 1000 | array | PRIMITIVE_ARRAY |
8772856.921028 |
-| Fory | serialize | 1000 | array | BUFFER |
4979590.929127 |
-| Fory | serialize | 1000 | directBuffer | PRIMITIVE_ARRAY |
8207563.785251 |
-| Fory | serialize | 1000 | directBuffer | BUFFER |
5376191.775007 |
-| Fory | serialize | 5000 | array | PRIMITIVE_ARRAY |
8027439.580246 |
-| Fory | serialize | 5000 | array | BUFFER |
5018916.32477 |
-| Fory | serialize | 5000 | directBuffer | PRIMITIVE_ARRAY |
7695981.988316 |
-| Fory | serialize | 5000 | directBuffer | BUFFER |
5330897.68296 |
-| Kryo | deserialize | 200 | array | PRIMITIVE_ARRAY |
146675.360652 |
-| Kryo | deserialize | 200 | array | BUFFER |
1296284.78772 |
-| Kryo | deserialize | 200 | directBuffer | PRIMITIVE_ARRAY |
518713.299424 |
-| Kryo | deserialize | 200 | directBuffer | BUFFER |
1004844.498712 |
-| Kryo | deserialize | 1000 | array | PRIMITIVE_ARRAY |
30409.835023 |
-| Kryo | deserialize | 1000 | array | BUFFER |
721266.54113 |
-| Kryo | deserialize | 1000 | directBuffer | PRIMITIVE_ARRAY |
112132.004609 |
-| Kryo | deserialize | 1000 | directBuffer | BUFFER |
592972.713203 |
-| Kryo | deserialize | 5000 | array | PRIMITIVE_ARRAY |
6124.351248 |
-| Kryo | deserialize | 5000 | array | BUFFER |
147251.846111 |
-| Kryo | deserialize | 5000 | directBuffer | PRIMITIVE_ARRAY |
21826.04041 |
-| Kryo | deserialize | 5000 | directBuffer | BUFFER |
148614.476829 |
-| Kryo | serialize | 200 | array | PRIMITIVE_ARRAY |
147342.606262 |
-| Kryo | serialize | 200 | array | BUFFER |
1985187.977633 |
-| Kryo | serialize | 200 | directBuffer | PRIMITIVE_ARRAY |
972683.763633 |
-| Kryo | serialize | 200 | directBuffer | BUFFER |
1739454.51977 |
-| Kryo | serialize | 1000 | array | PRIMITIVE_ARRAY |
31395.721514 |
-| Kryo | serialize | 1000 | array | BUFFER |
1616159.67123 |
-| Kryo | serialize | 1000 | directBuffer | PRIMITIVE_ARRAY |
209183.090868 |
-| Kryo | serialize | 1000 | directBuffer | BUFFER |
1377272.56851 |
-| Kryo | serialize | 5000 | array | PRIMITIVE_ARRAY |
6248.006967 |
-| Kryo | serialize | 5000 | array | BUFFER |
711287.533377 |
-| Kryo | serialize | 5000 | directBuffer | PRIMITIVE_ARRAY |
43565.678616 |
-| Kryo | serialize | 5000 | directBuffer | BUFFER |
707092.956534 |
+| Benchmark | array_size | bufferType | dataType | Fory |
Kryo | Fst |
+| ----------- | ---------- | ------------ | --------------- | -------------- |
-------------- | -------------- |
+| serialize | 200 | array | BUFFER | 5123572.914045 |
1985187.977633 | 2400193.220466 |
+| serialize | 200 | array | PRIMITIVE_ARRAY | 8297232.942927 |
147342.606262 | 313986.053417 |
+| serialize | 200 | directBuffer | BUFFER | 5400346.890126 |
1739454.519770 | 2282550.111756 |
+| serialize | 200 | directBuffer | PRIMITIVE_ARRAY | 8335248.350301 |
972683.763633 | 294132.218623 |
+| serialize | 1000 | array | BUFFER | 4979590.929127 |
1616159.671230 | 1805557.477810 |
+| serialize | 1000 | array | PRIMITIVE_ARRAY | 8772856.921028 |
31395.721514 | 67209.107012 |
+| serialize | 1000 | directBuffer | BUFFER | 5376191.775007 |
1377272.568510 | 1644789.427010 |
+| serialize | 1000 | directBuffer | PRIMITIVE_ARRAY | 8207563.785251 |
209183.090868 | 66108.014322 |
+| serialize | 5000 | array | BUFFER | 5018916.322770 |
711287.533377 | 811029.402136 |
+| serialize | 5000 | array | PRIMITIVE_ARRAY | 8027439.580226 |
6248.006967 | 14997.400124 |
+| serialize | 5000 | directBuffer | BUFFER | 5330897.682960 |
707092.956534 | 477148.540850 |
+| serialize | 5000 | directBuffer | PRIMITIVE_ARRAY | 7695981.988316 |
43565.678616 | 15000.378818 |
+| deserialize | 200 | array | BUFFER | 3302149.383135 |
1296284.787720 | 657754.887247 |
+| deserialize | 200 | array | PRIMITIVE_ARRAY | 986136.067809 |
146675.360652 | 219333.990504 |
+| deserialize | 200 | directBuffer | BUFFER | 3113115.471758 |
1004844.498712 | 598421.278941 |
+| deserialize | 200 | directBuffer | PRIMITIVE_ARRAY | 991807.969328 |
518713.299422 | 179604.045774 |
+| deserialize | 1000 | array | BUFFER | 2831942.848999 |
721266.541130 | 422147.154601 |
+| deserialize | 1000 | array | PRIMITIVE_ARRAY | 205671.992736 |
30409.835023 | 53100.903684 |
+| deserialize | 1000 | directBuffer | BUFFER | 3397690.327371 |
592972.713203 | 298929.116572 |
+| deserialize | 1000 | directBuffer | PRIMITIVE_ARRAY | 202275.242341 |
112132.004609 | 38572.001768 |
+| deserialize | 5000 | array | BUFFER | 3296658.120035 |
147251.846111 | 136934.604328 |
+| 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 |
diff --git
a/docs/benchmarks/java/compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png
b/docs/benchmarks/java/compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png
deleted file mode 100644
index 68fef5a92..000000000
Binary files
a/docs/benchmarks/java/compatible/bench_deserialize_compatible_MEDIA_CONTENT_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png
b/docs/benchmarks/java/compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png
deleted file mode 100644
index 94529bb83..000000000
Binary files
a/docs/benchmarks/java/compatible/bench_deserialize_compatible_STRUCT_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png
b/docs/benchmarks/java/compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png
deleted file mode 100644
index 87782f2b1..000000000
Binary files
a/docs/benchmarks/java/compatible/bench_serialize_compatible_MEDIA_CONTENT_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png
b/docs/benchmarks/java/compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png
deleted file mode 100644
index 4093a4a29..000000000
Binary files
a/docs/benchmarks/java/compatible/bench_serialize_compatible_STRUCT_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png
deleted file mode 100644
index 70a4e1fdd..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_directBuffer_tps.png
deleted file mode 100644
index 74817abc1..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_MEDIA_CONTENT_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_array_tps.png
deleted file mode 100644
index dcfe30633..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_directBuffer_tps.png
deleted file mode 100644
index 045e5c02a..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_SAMPLE_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT2_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT2_from_array_tps.png
deleted file mode 100644
index 444b1aa7e..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT2_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT2_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT2_from_directBuffer_tps.png
deleted file mode 100644
index fec642a64..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT2_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT_from_array_tps.png
deleted file mode 100644
index 8ec91efc8..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT_from_directBuffer_tps.png
deleted file mode 100644
index ac161c9dd..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_STRUCT_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_MEDIA_CONTENT_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_compatible_MEDIA_CONTENT_from_directBuffer_tps.png
deleted file mode 100644
index 830642b62..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_MEDIA_CONTENT_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_SAMPLE_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_compatible_SAMPLE_from_array_tps.png
deleted file mode 100644
index 8e1a429e2..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_SAMPLE_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_SAMPLE_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_compatible_SAMPLE_from_directBuffer_tps.png
deleted file mode 100644
index 380de0a1d..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_SAMPLE_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT2_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT2_from_array_tps.png
deleted file mode 100644
index c1942ae15..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT2_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT2_from_directBuffer_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT2_from_directBuffer_tps.png
deleted file mode 100644
index 43af89c9c..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT2_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT_from_array_tps.png
b/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT_from_array_tps.png
deleted file mode 100644
index a39ccdd11..000000000
Binary files
a/docs/benchmarks/java/deserialization/bench_deserialize_compatible_STRUCT_from_array_tps.png
and /dev/null differ
diff --git a/docs/benchmarks/java/java_heap_deserialize_compatible.png
b/docs/benchmarks/java/java_heap_deserialize_compatible.png
new file mode 100644
index 000000000..2865473dd
Binary files /dev/null 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
new file mode 100644
index 000000000..fff332e47
Binary files /dev/null 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
new file mode 100644
index 000000000..d9e3db675
Binary files /dev/null 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
new file mode 100644
index 000000000..065907ddb
Binary files /dev/null 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
new file mode 100644
index 000000000..e7258a923
Binary files /dev/null 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
new file mode 100644
index 000000000..b84e279e3
Binary files /dev/null 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
new file mode 100644
index 000000000..3f1f5821c
Binary files /dev/null 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
new file mode 100644
index 000000000..98d0582af
Binary files /dev/null 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
new file mode 100644
index 000000000..21bf2b45d
Binary files /dev/null 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
new file mode 100644
index 000000000..dfff16eec
Binary files /dev/null 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
new file mode 100644
index 000000000..03acaa38b
Binary files /dev/null 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
new file mode 100644
index 000000000..e1be0893b
Binary files /dev/null and b/docs/benchmarks/java/java_zero_copy_serialize.png
differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png
deleted file mode 100644
index 102aebf71..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_directBuffer_tps.png
deleted file mode 100644
index 28277c8e3..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_MEDIA_CONTENT_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_array_tps.png
deleted file mode 100644
index 391a4cd72..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_directBuffer_tps.png
deleted file mode 100644
index 757164a64..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_SAMPLE_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT2_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_STRUCT2_to_array_tps.png
deleted file mode 100644
index ad5674db5..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT2_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT2_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_STRUCT2_to_directBuffer_tps.png
deleted file mode 100644
index 22b132f1c..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT2_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_STRUCT_to_array_tps.png
deleted file mode 100644
index 7f82cbe88..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_STRUCT_to_directBuffer_tps.png
deleted file mode 100644
index 0dd0146df..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_STRUCT_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_compatible_MEDIA_CONTENT_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_compatible_MEDIA_CONTENT_to_directBuffer_tps.png
deleted file mode 100644
index 3b39c7e47..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_compatible_MEDIA_CONTENT_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_compatible_SAMPLE_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_compatible_SAMPLE_to_array_tps.png
deleted file mode 100644
index 552a5d256..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_compatible_SAMPLE_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_compatible_SAMPLE_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_compatible_SAMPLE_to_directBuffer_tps.png
deleted file mode 100644
index bd6f43327..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_compatible_SAMPLE_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT2_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT2_to_array_tps.png
deleted file mode 100644
index 16b215fc5..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT2_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT2_to_directBuffer_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT2_to_directBuffer_tps.png
deleted file mode 100644
index be8f5ce5b..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT2_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT_to_array_tps.png
b/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT_to_array_tps.png
deleted file mode 100644
index ad1110382..000000000
Binary files
a/docs/benchmarks/java/serialization/bench_serialize_compatible_STRUCT_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_BUFFER_from_array_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_BUFFER_from_array_tps.png
deleted file mode 100644
index 9ec2e6c0c..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_BUFFER_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_BUFFER_from_directBuffer_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_BUFFER_from_directBuffer_tps.png
deleted file mode 100644
index 76102feed..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_BUFFER_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_array_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_array_tps.png
deleted file mode 100644
index 3890e11d4..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_directBuffer_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_directBuffer_tps.png
deleted file mode 100644
index adc23e38b..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_deserialize_PRIMITIVE_ARRAY_from_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_BUFFER_to_array_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_BUFFER_to_array_tps.png
deleted file mode 100644
index 55834422a..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_BUFFER_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_BUFFER_to_directBuffer_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_BUFFER_to_directBuffer_tps.png
deleted file mode 100644
index 7a274ac50..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_BUFFER_to_directBuffer_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_array_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_array_tps.png
deleted file mode 100644
index 8be24baec..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_array_tps.png
and /dev/null differ
diff --git
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_directBuffer_tps.png
b/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_directBuffer_tps.png
deleted file mode 100644
index 88ff86352..000000000
Binary files
a/docs/benchmarks/java/zerocopy/zero_copy_bench_serialize_PRIMITIVE_ARRAY_to_directBuffer_tps.png
and /dev/null differ
diff --git a/docs/benchmarks/rust/README.md b/docs/benchmarks/rust/README.md
index 834516501..60e2e7b3a 100644
--- a/docs/benchmarks/rust/README.md
+++ b/docs/benchmarks/rust/README.md
@@ -25,45 +25,31 @@ python benchmark_report.py --log-file cargo_bench.log
--output-dir=report_output
**company**
-<p align="center">
-<img src="company.png" width="90%" />
-</p>
+
**ecommerce_data**
-<p align="center">
-<img src="ecommerce_data.png" width="90%" />
-</p>
+
**person**
-<p align="center">
-<img src="person.png" width="90%" />
-</p>
+
**simple_list**
-<p align="center">
-<img src="simple_list.png" width="90%" />
-</p>
+
**simple_map**
-<p align="center">
-<img src="simple_map.png" width="90%" />
-</p>
+
**simple_struct**
-<p align="center">
-<img src="simple_struct.png" width="90%" />
-</p>
+
**system_data**
-<p align="center">
-<img src="system_data.png" width="90%" />
-</p>
+
### Serialize Results
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]