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:

None

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.

Return type:

str

Parameters:
  • key (str) – Parameter name

  • value (Any) – Parameter value

  • additional_filtered_params (Optional[list[str]], optional) – Additional parameters to filter

Returns:

Original value as string or “redacted” if parameter should be filtered

Return type:

str

timeit(func=None, *, filtered_params=None)[source]

Decorator to time function execution.

Return type:

Callable

Note

Can be used with or without parameters: @timing.timeit def func1(): …

@timing.timeit(filtered_params=[‘sensitive’]) def func2(): …

Parameters:
  • func (Optional[Callable]) – The function to be timed

  • filtered_params (Optional[list[str]], optional) – Additional parameters to filter for this specific function

Returns:

The wrapped function

Return type:

Callable