diff options
author | Birte Kristina Friesel <birte.friesel@uos.de> | 2025-05-21 13:45:11 +0200 |
---|---|---|
committer | Birte Kristina Friesel <birte.friesel@uos.de> | 2025-05-21 13:45:11 +0200 |
commit | 1090ac0236bd6936188de7f0794c99d9e838290a (patch) | |
tree | 4d29deea79af50add49b6545107ba4c98c280c96 /bin/analyze-trace.py | |
parent | 824fdca7224a5973f6d9bb4f429c38244378eac8 (diff) |
learn_pta: merge observations of identical run names
Diffstat (limited to 'bin/analyze-trace.py')
-rwxr-xr-x | bin/analyze-trace.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/bin/analyze-trace.py b/bin/analyze-trace.py index 8404ccd..9ab9f8b 100755 --- a/bin/analyze-trace.py +++ b/bin/analyze-trace.py @@ -34,8 +34,7 @@ def parse_logfile(filename): return loader.load(f, is_trace=True) -def learn_pta(observations, annotation): - delta = dict() +def learn_pta(observations, annotation, delta=dict()): prev_i = annotation.start.offset prev = "__init__" prev_non_kernel = prev @@ -109,7 +108,7 @@ def learn_pta(observations, annotation): if not prev in delta: delta[prev] = set() delta[prev].add("__end__") - return meta_observations + return delta, meta_observations def join_annotations(ref, base, new): @@ -148,8 +147,20 @@ def main(): map(parse_logfile, args.logfiles), ) + delta_by_name = dict() for annotation in annotations: - observations += learn_pta(observations, annotation) + if annotation.name not in delta_by_name: + delta_by_name[annotation.name] = dict() + _, meta_obs = learn_pta( + observations, annotation, delta_by_name[annotation.name] + ) + observations += meta_obs + + for name in sorted(delta_by_name.keys()): + for t_from, t_to_set in delta_by_name[name].items(): + for t_to in t_to_set: + print(f"{name} {t_from} → {t_to}") + print("") by_name, parameter_names = dfatool.utils.observations_to_by_name(observations) del observations |