aeroson

performance_data_gathering.sqf

Sep 24th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1.  
  2.  
  3. if(isServer) then {
  4.  
  5. diag_log "TAW_DATA_PLAYER_FPS: 'serverTime', 'profileName', 'fpsAvg', 'fpsMin'";
  6. diag_log "TAW_DATA_JOINED: 'serverTime', 'profileName', 'count_activatedAddons'";
  7. diag_log "TAW_DATA_MISSION: 'serverTime', 'count_allPlayers', 'count_allUnits', 'count_playableUnits', 'count_allMissionObjects'";
  8. diag_log "TAW_DATA_PLAYER: 'serverTime', 'profileName', 'viewDistance', 'objectDistance', 'shadowDistance', 'terrainGrid', 'count_localUnits', 'playerFatigue', 'playerDistanceMoved', 'playerRating', 'scriptsSpawn', 'scriptsExecVM', 'scriptsExec', 'scriptsExecFSM'";
  9.  
  10. receiveFpsData = {
  11. params [
  12. "_profileName",
  13. "_data"
  14. ];
  15.  
  16. {
  17. _x params [
  18. "_serverTime",
  19. "_fps",
  20. "_fpsMin"
  21. ];
  22. diag_log format[
  23. "TAW_DATA_PLAYER_FPS: %1, '%2', %3, %4",
  24. _serverTime,
  25. _profileName,
  26. _fps,
  27. _fpsMin
  28. ];
  29. } forEach _data;
  30. };
  31.  
  32. rceiveJoinedData = {
  33. private _data = ["TAW_DATA_JOINED: %1, '%2', %3"];
  34. _data append _this;
  35. diag_log format _data;
  36. };
  37.  
  38.  
  39. receivePlayerData = {
  40. private _data = ["TAW_DATA_PLAYER: %1, '%2', %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13"];
  41. _data append _this;
  42. diag_log format _data;
  43. };
  44.  
  45.  
  46. };
  47.  
  48.  
  49.  
  50. [] spawn {
  51.  
  52. private _data = [];
  53.  
  54. _data = [
  55. round serverTime,
  56. profileName,
  57. count activatedAddons
  58. ];
  59.  
  60. [
  61. _data,
  62. "rceiveJoinedData",
  63. false // execute on server only
  64. ] call BIS_fnc_MP;
  65.  
  66.  
  67. private _nextSendData = 0;
  68. private _nextFrame = 0;
  69. private _count = 0;
  70. private _fps = 0;
  71. private _fpsMin = 0;
  72. private _sendDataTime = 0;
  73.  
  74. while{true} do {
  75.  
  76. _data = [];
  77. _nextSendData = serverTime + 60;
  78.  
  79. while{serverTime < _nextSendData} do {
  80.  
  81. _count = 0;
  82. _fps = 0;
  83. _fpsMin = 0;
  84.  
  85. _sendDataTime = serverTime + 1;
  86.  
  87. while{serverTime <= _sendDataTime} do {
  88.  
  89. _count = _count + 1;
  90. _fps = _fps + diag_fps;
  91. _fpsMin = _fpsMin + diag_fps;
  92.  
  93. _nextFrame = diag_frameNo + 16;
  94. waitUntil{diag_frameNo <= _nextFrame};
  95.  
  96. };
  97.  
  98. if(_count > 0) then {
  99. _data pushBack [
  100. serverTime,
  101. _fps / _count,
  102. _fpsMin / _count
  103. ];
  104. };
  105. };
  106.  
  107. [
  108. [profileName, _data],
  109. "receiveFpsData",
  110. false // execute on server only
  111. ] call BIS_fnc_MP;
  112.  
  113. };
  114.  
  115. };
  116.  
  117.  
  118.  
  119.  
  120.  
  121. [] spawn {
  122.  
  123. private _data = [];
  124. private _lastPosition = [];
  125.  
  126. while{true} do {
  127.  
  128.  
  129. if(isServer) then {
  130. diag_log format[
  131. "TAW_DATA_MISSION: %1, %2, %3, %4, %5",
  132. round serverTime,
  133. count allPlayers,
  134. count allUnits,
  135. count playableUnits,
  136. count allMissionObjects ""
  137. ];
  138. };
  139.  
  140.  
  141. if(!isNil{player} && {player == player}) then {
  142.  
  143. if(count _lastPosition == 0) then {
  144. _lastPosition = getPosASL player;
  145. };
  146.  
  147. getObjectViewDistance params [
  148. "_objectDistance",
  149. "_shadowDistance"
  150. ];
  151.  
  152. _data = [
  153. round serverTime,
  154. profileName,
  155. viewDistance,
  156. _objectDistance,
  157. _shadowDistance,
  158. getTerrainGrid,
  159. {local _x} count allUnits,
  160. getFatigue player,
  161. _lastPosition distance getPosASL player, // distance moved
  162. rating player
  163. ];
  164. _data append diag_activeScripts;
  165.  
  166. _lastPosition = getPosASL player;
  167.  
  168. [
  169. _data,
  170. "receivePlayerData",
  171. false // execute on server only
  172. ] call BIS_fnc_MP;
  173.  
  174. };
  175.  
  176.  
  177.  
  178. sleep 60;
  179. };
  180.  
  181. };
Advertisement
Add Comment
Please, Sign In to add comment