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

Function main

benchmarks/python/benchmark.py:961–1078  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

959
960
961def main() -> int:
962 args = parse_args()
963
964 proto_dir = Path(args.proto_dir)
965 bench_pb2 = load_bench_pb2(proto_dir)
966
967 selected_datatypes = parse_csv_list(args.data, DATA_TYPE_ORDER, DATA_TYPE_ORDER)
968 selected_serializers = parse_csv_list(
969 args.serializer, SERIALIZER_ORDER, SERIALIZER_ORDER
970 )
971 validate_schema_mismatch_selection(selected_serializers)
972 selected_operations = (
973 OPERATION_ORDER if args.operation == "all" else [args.operation]
974 )
975
976 benchmark_data = create_benchmark_data()
977 mismatch = schema_mismatch_enabled()
978 fory_writer = build_fory_v1()
979 fory_reader = build_fory_v2() if mismatch else build_fory_v1()
980 if mismatch:
981 verify_fory_schema_mismatch(
982 benchmark_data,
983 selected_datatypes,
984 writer=fory_writer,
985 reader=fory_reader,
986 )
987
988 print(
989 f"Benchmarking {len(selected_datatypes)} data type(s), {len(selected_serializers)} serializer(s), {len(selected_operations)} operation(s)"
990 )
991 print(
992 f"Warmup={args.warmup}, Iterations={args.iterations}, Repeat={args.repeat}, Number={args.number}"
993 )
994 print("=" * 96)
995
996 results = []
997
998 for datatype in selected_datatypes:
999 obj = benchmark_data[datatype]
1000 call_number = benchmark_number(args.number, datatype)
1001 for operation in selected_operations:
1002 for serializer in selected_serializers:
1003 case_name = benchmark_name(serializer, datatype, operation)
1004 print(f"Running {case_name} ...", end=" ", flush=True)
1005
1006 func, func_args = build_case(
1007 serializer,
1008 operation,
1009 datatype,
1010 obj,
1011 fory_writer=fory_writer,
1012 fory_reader=fory_reader,
1013 bench_pb2=bench_pb2,
1014 )
1015 mean, stdev = run_benchmark(
1016 func,
1017 func_args,
1018 warmup=args.warmup,

Callers 1

benchmark.pyFile · 0.70

Calls 15

load_bench_pb2Function · 0.85
parse_csv_listFunction · 0.85
create_benchmark_dataFunction · 0.85
build_fory_v1Function · 0.85
build_fory_v2Function · 0.85
benchmark_numberFunction · 0.85
benchmark_nameFunction · 0.85
build_caseFunction · 0.85
parse_argsFunction · 0.70

Tested by

no test coverage detected