MCPcopy Create free account
hub / github.com/apache/fory / calculate_serialized_sizes

Function calculate_serialized_sizes

benchmarks/python/benchmark.py:847–876  ·  view source on GitHub ↗
(
    benchmark_data: Dict[str, Any],
    selected_datatypes: Iterable[str],
    *,
    fory: pyfory.Fory,
    bench_pb2,
    selected_serializers: Iterable[str],
    schema_mismatch: bool,
)

Source from the content-addressed store, hash-verified

845
846
847def calculate_serialized_sizes(
848 benchmark_data: Dict[str, Any],
849 selected_datatypes: Iterable[str],
850 *,
851 fory: pyfory.Fory,
852 bench_pb2,
853 selected_serializers: Iterable[str],
854 schema_mismatch: bool,
855) -> Dict[str, Dict[str, int]]:
856 sizes: Dict[str, Dict[str, int]] = {}
857 serializer_names = (
858 list(selected_serializers) if schema_mismatch else SERIALIZER_ORDER
859 )
860 for datatype in selected_datatypes:
861 obj = benchmark_data[datatype]
862 datatype_sizes: Dict[str, int] = {}
863
864 if "fory" in serializer_names:
865 datatype_sizes["fory"] = len(fory.serialize(obj))
866 if "pickle" in serializer_names:
867 datatype_sizes["pickle"] = len(
868 pickle.dumps(obj, protocol=pickle.HIGHEST_PROTOCOL)
869 )
870
871 if "protobuf" in serializer_names:
872 to_pb, _, _ = PROTO_CONVERTERS[datatype]
873 datatype_sizes["protobuf"] = len(to_pb(bench_pb2, obj).SerializeToString())
874
875 sizes[datatype] = datatype_sizes
876 return sizes
877
878
879def parse_csv_list(value: str, allowed: Iterable[str], default: List[str]) -> List[str]:

Callers 1

mainFunction · 0.85

Calls 3

serializeMethod · 0.65
listFunction · 0.50
dumpsMethod · 0.45

Tested by

no test coverage detected