@@ -40,44 +40,6 @@ def parse_func(file_path: Path) -> XMLParser:
4040matches_re_end = re .compile (r"!######(.*?):(.*?)([^\.:]*?):(.*?):(.*?):(.*?)######!" )
4141
4242
43- def calculate_async_throughput_from_stdout (stdout : str , async_function_names : set [str ]) -> dict [str , int ]:
44- if not stdout or not async_function_names :
45- return {}
46-
47- throughput_counts = {}
48-
49- # Find all complete performance tag pairs (start + end)
50- begin_matches = list (matches_re_start .finditer (stdout ))
51- end_matches = set ()
52-
53- for match in matches_re_end .finditer (stdout ):
54- groups = match .groups ()
55- # Remove timing info from the last group to match start tags
56- # End format: 'iteration_id:timing_info', Start format: 'iteration_id'
57- # We need to remove only the last ':timing_info' part
58- last_group = groups [5 ]
59- split_parts = last_group .split (":" )
60- if len (split_parts ) > 2 : # Has timing info (format: prefix:suffix:timing)
61- # Reconstruct without the timing info (last part)
62- iteration_id = ":" .join (split_parts [:- 1 ])
63- normalized_groups = (* groups [:5 ], iteration_id )
64- else :
65- normalized_groups = groups
66- end_matches .add (normalized_groups )
67-
68- # Count complete tags for async functions only
69- for begin_match in begin_matches :
70- groups = begin_match .groups ()
71- function_getting_tested = groups [4 ]
72-
73- if function_getting_tested in async_function_names and groups in end_matches :
74- if function_getting_tested not in throughput_counts :
75- throughput_counts [function_getting_tested ] = 0
76- throughput_counts [function_getting_tested ] += 1
77-
78- return throughput_counts
79-
80-
8143start_pattern = re .compile (r"!\$######([^:]*):([^:]*):([^:]*):([^:]*):([^:]+)######\$!" )
8244end_pattern = re .compile (r"!######([^:]*):([^:]*):([^:]*):([^:]*):([^:]+)######!" )
8345
0 commit comments