MCPcopy Create free account
hub / github.com/LucaCanali/PyLatencyMap / GlobalParameters

Class GlobalParameters

LatencyMap.py:66–136  ·  view source on GitHub ↗

Global parameters parsed from CLI, with sensible defaults

Source from the content-addressed store, hash-verified

64# ----------------------------- Parameters & CLI ----------------------------- #
65
66class GlobalParameters:
67 """
68 Global parameters parsed from CLI, with sensible defaults
69 """
70 def __init__(self) -> None:
71 # Chart/window width (time axis)
72 self.num_latency_records: int = 90
73
74 # Buckets are log2(power-of-two value in the given latency unit).
75 # -1 means autotune min; 64 was used as a sentinel for autotune max.
76 self.min_latency_bkt: int = -1 # lower bucket (log2)
77 self.max_latency_bkt: int = 64 # upper bucket (log2), 64 => autotune
78
79 # Auto scaling for colors unless overridden (>0 to fix scale)
80 self.frequency_maxval: float = -1
81 self.intensity_maxval: float = -1
82
83 self.debug_level: int = 0
84 self.print_legend: bool = True
85 self.frequency_map: bool = True
86 self.intensity_map: bool = True
87
88 # Delay between frames (useful when replaying traces)
89 self.screen_delay: float = 0.1
90
91 # Unit of incoming bucket values (impacts labels & autotune min)
92 # Valid: 'millisec', 'microsec', 'nanosec'
93 self.latency_unit: str = 'millisec'
94
95 # Tags/string constants (unchanged)
96 self.begin_tag: str = '<begin record>'
97 self.end_tag: str = '<end record>'
98 self.latencyunit_tag: str = 'latencyunit'
99 self.label_tag: str = 'label'
100 self.label_data_source: str = 'datasource'
101 self.default_data_source: str = 'bpf' # bpf, systemtap, dtrace, oracle
102
103 def parse_cli(self, argv: list[str] | None = None) -> None:
104 parser = argparse.ArgumentParser(
105 prog="LatencyMap.py",
106 description="Plot CLI heatmaps (frequency & intensity) from latency histograms."
107 )
108 parser.add_argument("--num_records", "-n", type=int, default=self.num_latency_records,
109 help="Number of time intervals displayed (default: 90).")
110 parser.add_argument("--min_bucket", type=int, default=self.min_latency_bkt,
111 help="Lower bucket exponent (log2). -1 = autotune (default).")
112 parser.add_argument("--max_bucket", type=int, default=self.max_latency_bkt,
113 help="Upper bucket exponent (log2). 64 = autotune (default).")
114 parser.add_argument("--frequency_maxval", type=float, default=self.frequency_maxval,
115 help="Max color scale for frequency map; -1 = auto (default).")
116 parser.add_argument("--intensity_maxval", type=float, default=self.intensity_maxval,
117 help="Max color scale for intensity map; -1 = auto (default).")
118 parser.add_argument("--screen_delay", type=float, default=self.screen_delay,
119 help="Delay (sec) between screens (default: 0.1).")
120 parser.add_argument("--debug_level", "-d", type=int, default=self.debug_level,
121 help="Debug level 0..5 (default: 0).")
122
123 # Parse provided argv or default to sys.argv[1:]

Callers 1

LatencyMap.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected