ACE3/addons/common/functions/fnc_dumpPerformanceCounters.sqf

94 lines
2.6 KiB
Plaintext
Raw Normal View History

2015-09-20 20:16:51 +00:00
/*
* Author: ?
* Dumps performance counter statistics into Logs.
*
* Arguments:
* None
*
* Return Value:
* None
*
* Public: No
*/
2015-03-10 19:59:40 +00:00
#include "script_component.hpp"
2015-09-20 23:07:49 +00:00
diag_log text format ["REGISTERED ACE PFH HANDLERS"];
diag_log text format ["-------------------------------------------"];
2015-09-20 20:16:51 +00:00
2015-05-14 18:06:06 +00:00
if (!isNil "ACE_PFH_COUNTER") then {
{
_x params ["_pfh", "_parameters"];
2015-09-20 20:16:51 +00:00
private "_isActive";
_isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
2015-09-20 20:16:51 +00:00
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];
false
} count ACE_PFH_COUNTER;
};
2015-03-10 19:59:40 +00:00
2015-09-20 20:16:51 +00:00
diag_log text format ["ACE COUNTER RESULTS"];
diag_log text format ["-------------------------------------------"];
2015-03-10 19:59:40 +00:00
{
2015-09-20 20:16:51 +00:00
private ["_counterEntry", "_iter", "_total", "_count", "_averageResult", "_delta"];
_counterEntry = _x;
_iter = 0;
_total = 0;
_count = 0;
_averageResult = 0;
2015-09-20 20:16:51 +00:00
if (count _counterEntry > 3) then {
// calc
{
2015-09-20 20:16:51 +00:00
if (_iter > 2) then {
_count = _count + 1;
_delta = (_x select 1) - (_x select 0);
_total = _total + _delta;
};
2015-09-20 20:16:51 +00:00
_iter = _iter + 1;
2015-09-20 20:16:51 +00:00
false
} count _counterEntry;
// results
_averageResult = (_total / _count) * 1000;
2015-09-20 20:16:51 +00:00
// dump results
2015-09-20 20:16:51 +00:00
diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult];
} else {
2015-09-20 20:16:51 +00:00
diag_log text format ["%1: No results", _counterEntry select 0];
};
2015-09-20 20:16:51 +00:00
false
} count ACE_COUNTERS;
2015-03-10 19:59:40 +00:00
/*
// 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)];
2015-03-10 19:59:40 +00:00
} 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];
2015-03-10 19:59:40 +00:00
} forEach ACE_PERFORMANCE_EXCESSIVE_FRAME_TRACKER;
//{
//
//} forEach ACRE_EXCESSIVE_FRAME_TRACKER;
2015-09-20 20:16:51 +00:00
*/