mediapipe/mediapipe2/framework/profiler/reporter/README.md
2021-06-10 23:01:19 +00:00

2.8 KiB

Command Line Profiler

Allows a user to analyze trace files generated by MediaPipe from the command line. If you would prefer to see this information visually (or if you can't build the tool), you can see the same information within viz.mediapipe.dev.


Building and Executing

Navigate to:

//mediapipe/framework/profiler/reporter

To run:

bazel run :print_profile

To test:

bazel test :reporter_test

To print out the time columns and the total columns (as an example):

bazel run :print_profile -- --cols "*time*,*total*" --logfiles "<path-to-log>,<path-to-another-log>"

print_profile [OPTION]... [FILE]...

Extract information from a set of MediaPipe trace files.

--compact

print_profile will create lanes for each column, adding white space so that everything is easily readable. This option trims out any extra whitespace.

--cols

Column separated set of columns to be shown. Omit to show everything. The user can use asterisks to match zero or more characters, or question marks to match a single character. (e.g., "time_*" will match "time_mean", "time_stddev", and so on). "calculator" is always shown first.

Columns are listed below.

Calculator Columns:

calculator

The name of the calculator

fps

The number of frames that this calculator can generate each second, on average. 1 / (latency_mean + time_mean) (Units are 1 / second).

frequency

The rate that this calculator was asked to process packets per second. (Computed by # of calls total / (last_call_time - first_call_time)). (Units are 1 / second)

counter

Number of times process() was called on the calculator. If the calculator generated outputs, then it will be reflected in "completed." If it did not, then this will be reflected in "dropped".

dropped

Number of times the calculator was called but did not produce an output.

completed

Number of times that this calculator was asked to process inputs after which it generated outputs.

processing_rate

1E+6 / time_mean. The number of times per second this calculator could run process, on average. (Units are 1 / second).

thread_count

The number of threads that made use of each calculator.

time_mean

Average time spent within a calculator (in microseconds).

time_stddev

Standard deviation of time_mean (in microseconds).

time_total

Total time spent within a calculator (in microseconds).

time_percent

Percent of total time spent within a calculator.

input_latency_mean

Average latency between earliest input packet and when calculator actually starts processing (in microseconds).

input_latency_stddev

Standard deviation of input_latency_mean (in microseconds).

input_latency_total

Total accumulated input_latency (in microseconds).