Benchmark
Module that holds the benchmark functions and metrics
- class TimingLogger(filtered_params=None)[source]
Specialized logger class for timing function execution.
This class provides detailed timing information for function calls, including: - Function name and arguments - Monotonic time (wall clock time) - Performance counter time (CPU time) - Custom timing messages
Example
>>> # Global filtered params >>> timing = TimingLogger(filtered_params=['password', 'secret']) >>> >>> # Additional per-function filtered params >>> @timing.timeit(filtered_params=['extra_sensitive']) >>> def my_function(arg1, password, extra_sensitive): >>> # Function code here >>> pass
Initialize TimingLogger with optional filtered parameters.
- Parameters:
filtered_params (Optional[list[str]], optional) – List of parameter names to be redacted in logs
- _log_timing(func_name, args, kwargs, duration, cpu_time, filtered_params=None, message=None)[source]
Internal method to log timing information.
- Return type:
- Parameters:
func_name (str) – Name of the function being timed
args (tuple) – Positional arguments passed to the function
kwargs (dict) – Keyword arguments passed to the function
duration (float) – Wall clock duration in milliseconds
cpu_time (float) – CPU time duration in milliseconds
filtered_params (Optional[list[str]], optional) – Additional parameters to filter
message (Optional[str]) – Optional custom message to include in log
- _sanitize_value(key, value, additional_filtered_params=None)[source]
Sanitize values based on filtered parameters.
- timeit(func=None, *, filtered_params=None)[source]
Decorator to time function execution.
- Return type:
Note
Can be used with or without parameters: @timing.timeit def func1(): …
@timing.timeit(filtered_params=[‘sensitive’]) def func2(): …