diag captureSlowFrame: Difference between revisions
Jump to navigation
Jump to search
threshold: Number or 2.20 String
since 1.18 frameSkip: Number - (Optional, default 0) number of frames to ignore before measuring
since 2.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 2.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
(added wikipedia link to SI prefixes) |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
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. | The GUI also provides method of copying of the displayed data to clipboard. | ||
{{{!}} class="wikitable valign-top-row-2 | {{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: | ||
{{!}}} | {{!}}} | ||
{{ | |p2= threshold: [[Number]] or {{GVI|arma3|2.20|size= 0.75}} [[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 {{Link|https://en.wikipedia.org/wiki/Second#SI_multiples|SI prefixes}} for more unit information){{Feature|important| | |||
The | The capture happens "when the section/scope duration is larger/longer than this", except with "fps" where 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 on 2014-03-31 --> | |||
|p3since= arma3 1.18 <!-- estimate, was committed | |||
|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) | |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]; // | |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
Description
- Description:
-
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.
- 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
- 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)
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:
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
Categories:
- Scripting Commands
- Introduced with Arma 2: Operation Arrowhead version 1.63
- Arma 2: Operation Arrowhead: New Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Arma 3: Scripting Commands: Diagnostic Branch
- Arma 3: Scripting Commands: Profiling Branch
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Diagnostic
- Command Group: Performance Profiling