//fnc_dumpPerformanceCounters.sqf #define DEBUG_MODE_FULL #include "script_component.hpp" diag_log text format["REGISTERED ACE PFH HANDLERS"]; diag_log text format["-------------------------------------------"]; if (!isNil "ACE_PFH_COUNTER") then { { private ["_isActive"]; _x params ["_pfh", "_parameters"]; _isActive = if (!isNil {cba_common_PFHhandles select (_pfh select 0)}) then {"ACTIVE"} else {"REMOVED"}; diag_log text format["Registered PFH: id=%1 [%2, delay %3], %4:%5", (_pfh select 0), (_isActive), (_parameters select 1), (_pfh select 1), (_pfh select 2) ]; } forEach ACE_PFH_COUNTER; }; diag_log text format["ACE COUNTER RESULTS"]; diag_log text format["-------------------------------------------"]; { private ["_counterEntry", "_iter", "_total", "_count", "_delta", "_averageResult"]; _counterEntry = _x; _iter = 0; _total = 0; _count = 0; _averageResult = 0; if( (count _counterEntry) > 3) then { // calc { if(_iter > 2) then { _count = _count + 1; _delta = (_x select 1) - (_x select 0); _total = _total + _delta; }; _iter = _iter + 1; } forEach _counterEntry; // results _averageResult = (_total / _count) * 1000; // dump results diag_log text format["%1: Average: %2s / %3 = %4ms", (_counterEntry select 0), _total, _count, _averageResult]; } else { diag_log text format["%1: No results", (_counterEntry select 0) ]; }; } forEach ACE_COUNTERS; /* // Dump PFH Trackers diag_log text format["ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER"]; diag_log text format["-------------------------------------------"]; { private["_delay"]; _delay = _x select 2; //if(_delay > 0) then { _delay = _delay / 1000; }; diag_log text format["%1: %2s, delay=%3, handle=%4",(_x select 0), _delay, (_x select 3), (_x select 4)]; } forEach ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER; // Dump PFH Trackers diag_log text format["ACE_PERFORMANCE_EXCESSIVE_FRAME_TRACKER"]; diag_log text format["-------------------------------------------"]; { private["_delta"]; _delta = _x select 1; //if(_delta > 0) then { _delta = _delta / 1000; }; diag_log text format[" DELTA: %1s", _delta]; } forEach ACE_PERFORMANCE_EXCESSIVE_FRAME_TRACKER; //{ // //} forEach ACRE_EXCESSIVE_FRAME_TRACKER; */