diag captureSlowFrame: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(added threshold as string type option)
m (Some wiki formatting)
 
(One intermediate revision by one other user not shown)
Line 19: Line 19:
Opens "capture frame" dialog if current frame exceeds set threshold in seconds. One can indicate to either capture duration of a specific profiling selection or the total duration of the frame.
Opens "capture frame" dialog if current frame exceeds set threshold in seconds. One can indicate to either capture duration of a specific profiling selection or the total duration of the frame.
The selection names can be obtained by expanding the profiling tree. Clicking on a tree item will highlight the item on the graph and vice versa.
The selection names can be obtained by expanding the profiling tree. Clicking on a tree item will highlight the item on the graph and vice versa.
The GUI also provides method of copying of the displayed data to clipboard. Some of the selections:
The GUI also provides method of copying of the displayed data to clipboard.  


{{{!}} class="wikitable valign-top-row-2" style="margin: 1em auto"
{{Feature|informative|
'''Chrome export format''':
Capturing to file also creates a .trace file, which can be imported into chrome://tracing (in chromium based webbrowsers), or https://ui.perfetto.dev/ <br>
The same format can be exported by pressing the "COPY ALL" button, in the capture frame UI, with {{Controls|Ctrl}} key being held down.
}}
 
|s1= [[diag_captureSlowFrame]] [section, threshold, frameSkip, toFile, continuousCounter]
 
|p1= section: [[String]] - '''case-sensitive'''; some of the selections:
 
: {{{!}} class="wikitable valign-top-row-2"
! Render
! Render
! Main Thread
! Main Thread
Line 31: Line 41:
{{!}}
{{!}}
* total
* total
* sLoop (for dedicated server)
* cLoop (for headless client)
* memAl
* memAl
{{!}}
{{!}}
Line 38: Line 50:
{{!}}}
{{!}}}


{{Feature|informative|
|p2= threshold: [[Number]] or {{GVI|arma3|2.20|size= 0.75}} [[String]]
'''Chrome export format''':
* [[Number]]: section duration in seconds. 0 captures always '''IF''' the section you gave as section filter appears inside the given frame. "total" always appears, while "callExt" might not always appear for example.
Capturing to file also creates a .trace file, which can be imported into chrome://tracing (in chromium based webbrowsers), or https://ui.perfetto.dev/ <br>
* [[String]]: number with unit (s / ms / us / ns / fps, e.g "30fps" - see {{Link|https://en.wikipedia.org/wiki/Second#SI_multiples|SI prefixes}} for more unit information){{Feature|important|
The same format can be exported by pressing the "COPY ALL" button, in the capture frame UI, with {{Controls|Ctrl}} key being held down.
The capture happens "when the section/scope duration is larger/longer than this", except with "fps" where it is "when smaller/lower".
}}
}}


|s1= [[diag_captureSlowFrame]] [section, threshold, frameSkip, toFile, continuousCounter]
|p3= frameSkip: [[Number]] - (Optional, default 0) number of frames to ignore before measuring
 
|p3since= arma3 1.18 <!-- estimate, was committed on 2014-03-31 -->
|p1= section: [[String]] - '''case-sensitive'''
 
|p2= threshold: [[Number]] - section duration in seconds. 0 captures always '''IF''' the section you gave as section filter appears inside the given frame. "total" always appears, while "callExt" might not always appear for example.<br>
Since {{GVI|arma3|2.20}} also accepts the threshold as [[String]] parameter with number plus '''s/ms/us/ns/fps''' suffix.<br>
'''Note''': The capture happens "when the section/scope duration is larger/longer than this", but with fps it is "when smaller/lower".
 
|p3= frameSkip: [[Number]] (Optional, default 0) - number of frames to ignore before measuring
|p3since= arma3 1.18 <!-- estimate, was committed at 2014-03-31 -->


|p4= toFile: [[Boolean]] - (Optional, default [[false]]) if true, doesn't open UI and writes straight to file. If logging to file, it automatically also outputs a .trace file. Note: even if false it might still force to file if it doesn't have a UI, like a server or HC
|p4= toFile: [[Boolean]] - (Optional, default [[false]]) if true, doesn't open UI and writes straight to file. If logging to file, it automatically also outputs a .trace file. Note: even if false it might still force to file if it doesn't have a UI, like a server or HC
|p4since= arma3 2.20
|p4since= arma3 2.20


|p5= continuousCounter: [[Number]] (Optional, default 0) - captures N slow frames. 0 or 1 will only capture one frame - don't set it to negative! Can be aborted by running diag_captureFrame or another captureSlowFrame
|p5= continuousCounter: [[Number]] - (Optional, default 0) captures N slow frames. 0 or 1 will only capture one frame - do '''not''' set it to negative! Can be aborted by running [[diag_captureFrame]] or another [[diag_captureSlowFrame]] usage
|p5since= arma3 2.20
|p5since= arma3 2.20


Line 73: Line 77:
|x5= <sqf>diag_captureSlowFrame ["memAl", 0.0001, 30];</sqf>
|x5= <sqf>diag_captureSlowFrame ["memAl", 0.0001, 30];</sqf>


|x6= <sqf>diag_captureSlowFrame ["total", 0, 0, false, 3]; // Will open the capture UI three times</sqf>
|x6= <sqf>diag_captureSlowFrame ["total", 0, 0, false, 3]; // opens the capture UI three times</sqf>


|seealso= [[Arma 3: Diagnostics Exe]] [[Performance Profiling]] [[Arma 3: Cheats]] [[Multiplayer_Server_Commands#Performance_Profiling|Admin chat commands]] [[diag_captureFrameToFile]] [[diag_captureFrame]] [[diag_logSlowFrame]] [[logEntities]] [[exportJIPMessages]]
|seealso= [[Arma 3: Diagnostics Exe]] [[Performance Profiling]] [[Arma 3: Cheats]] [[Multiplayer_Server_Commands#Performance_Profiling|Admin chat commands]] [[diag_captureFrameToFile]] [[diag_captureFrame]] [[diag_logSlowFrame]] [[logEntities]] [[exportJIPMessages]]
}}
}}

Latest revision as of 19:30, 5 December 2024

Hover & click on the images for description
Only available in Diagnostic/Profiling branch(es).

Description

Description:
CaptureSlowFrame.jpg

Opens "capture frame" dialog if current frame exceeds set threshold in seconds. One can indicate to either capture duration of a specific profiling selection or the total duration of the frame. The selection names can be obtained by expanding the profiling tree. Clicking on a tree item will highlight the item on the graph and vice versa. The GUI also provides method of copying of the displayed data to clipboard.

Chrome export format:

Capturing to file also creates a .trace file, which can be imported into chrome://tracing (in chromium based webbrowsers), or https://ui.perfetto.dev/

The same format can be exported by pressing the "COPY ALL" button, in the capture frame UI, with Ctrl key being held down.
Groups:
DiagnosticPerformance Profiling

Syntax

Syntax:
diag_captureSlowFrame [section, threshold, frameSkip, toFile, continuousCounter]
Parameters:
section: String - case-sensitive; some of the selections:
Render Main Thread Visualize Mjob
  • bgD3D
  • total
  • sLoop (for dedicated server)
  • cLoop (for headless client)
  • memAl
  • visul
  • Mjob
threshold: Number or Arma 3 logo black.png2.20 String
  • Number: section duration in seconds. 0 captures always IF the section you gave as section filter appears inside the given frame. "total" always appears, while "callExt" might not always appear for example.
  • String: number with unit (s / ms / us / ns / fps, e.g "30fps" - see SI prefixes for more unit information)
    The capture happens "when the section/scope duration is larger/longer than this", except with "fps" where it is "when smaller/lower".
since Arma 3 logo black.png1.18
frameSkip: Number - (Optional, default 0) number of frames to ignore before measuring
since Arma 3 logo black.png2.20
toFile: Boolean - (Optional, default false) if true, doesn't open UI and writes straight to file. If logging to file, it automatically also outputs a .trace file. Note: even if false it might still force to file if it doesn't have a UI, like a server or HC
since Arma 3 logo black.png2.20
continuousCounter: Number - (Optional, default 0) captures N slow frames. 0 or 1 will only capture one frame - do not set it to negative! Can be aborted by running diag_captureFrame or another diag_captureSlowFrame usage
Return Value:
Nothing

Examples

Example 1:
diag_captureSlowFrame ["total", 0.003];
Example 2:
diag_captureSlowFrame ["total", "0.003s"];
Example 3:
diag_captureSlowFrame ["total", "3ms"];
Example 4:
diag_captureSlowFrame ["total", "333fps"];
Example 5:
diag_captureSlowFrame ["memAl", 0.0001, 30];
Example 6:
diag_captureSlowFrame ["total", 0, 0, false, 3]; // opens the capture UI three times

Additional Information

See also:
Arma 3: Diagnostics Exe Performance Profiling Arma 3: Cheats Admin chat commands diag_captureFrameToFile diag_captureFrame diag_logSlowFrame logEntities exportJIPMessages

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note