fortplot_ci_performance_monitor Module

CI Performance Monitoring and Regression Detection

This module tracks CI execution times and detects performance regressions to ensure Windows CI tests complete within acceptable time limits (Issue #188).



Derived Types

type, public ::  performance_metric_t

Components

Type Visibility Attributes Name Initial
character(len=256), public :: test_name = ""
real(kind=real64), public :: execution_time = 0.0_real64
real(kind=real64), public :: baseline_time = 0.0_real64
logical, public :: regression_detected = .false.
real(kind=real64), public :: timestamp = 0.0_real64

type, public ::  ci_performance_monitor_t

Components

Type Visibility Attributes Name Initial
type(performance_metric_t), public, dimension(:), allocatable :: metrics
integer, public :: metric_count = 0
integer, public :: max_metrics = 1000
real(kind=real64), public :: total_execution_time = 0.0_real64
real(kind=real64), public :: performance_threshold = 1.5_real64
logical, public :: monitoring_enabled = .false.
character(len=256), public :: baseline_file = "ci_performance_baseline.dat"

Type-Bound Procedures

procedure, public :: initialize => monitor_initialize
procedure, public :: start_test => monitor_start_test
procedure, public :: end_test => monitor_end_test
procedure, public :: check_performance_regression => monitor_check_regression
procedure, public :: generate_performance_report => monitor_generate_report
procedure, public :: save_baseline => monitor_save_baseline
procedure, public :: load_baseline => monitor_load_baseline
procedure, public :: get_test_time => monitor_get_test_time
procedure, public :: get_total_time => monitor_get_total_time

Functions

public function get_ci_monitor() result(monitor)

Get global CI performance monitor

Arguments

None

Return Value type(ci_performance_monitor_t), pointer