# Genie Profile

Genie Profile APIs provides means to profile performance metrics of GenAI models. Profiling can be
enabled on genie-t2t-run and genie-t2e-run by passing the “–profile FILENAME” argument. This dumps
the collected profiling data to a JSON file with the provided name.

## Profiling JSON Output Schema

{
      "header": {
        "type": "object",
        "properties": {
          "header_version": {
            "type": "object",
            "properties": {
              "major": {"type": "integer"},
              "minor": {"type": "integer"},
              "patch": {"type": "integer"}
            },
            "required": [
              "major",
              "minor",
              "patch"
            ]
          },
          "version": {
            "type": "object",
            "properties": {
              "major": {"type": "integer"},
              "minor": {"type": "integer"},
              "patch": {"type": "integer"}
            },
            "required": [
              "major",
              "minor",
              "patch"
            ]
          },
          "artifact_type": { "type": "string" }
        },
        "required": [
          "header_version",
          "version",
          "artifact_type"
        ]
      },
      "metadata": {
        "type": "object",
        "properties": {
          "timestamp": {"type": "integer"}
        },
        "required": [
          "timestamp"
        ]
      },
      "components": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {"type": "string"},
            "type": {"type": "string", "enum" : ["dialog", "embedding"]},
            "events": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                      "type": "string",
                      "enum" : [
                        "GenieDialog_create", "GenieDialog_query", "GenieDialog_free",
                        "GenieEmbedding_create", "GenieEmbedding_generate","GenieEmbedding_free"
                      ]
                  },
                  "duration": {"type": "integer"},
                  "start": {"type": "integer"},
                  "stop": {"type": "integer"},
                  "init-time": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  },
                  "num-prompt-tokens": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  },
                  "prompt-processing-rate": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  },
                  "time-to-first-token": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  },
                  "num-generated-tokens": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  },
                  "token-generation-rate": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  },
                  "token-generation-time": {
                    "type": "object",
                    "properties": {
                      "value": {"type": "integer"},
                      "unit": {"type": "string"}
                    },
                    "required": [
                      "value",
                      "unit"
                    ]
                  }
                }
              },
              "required": [
                "type",
                "duration",
                "start",
                "stop"
              ]
            }
          }
        },
        "required": [
            "name",
            "type",
            "events"
        ]
      },
      "traceEvents" : {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {"type": "string"},
            "cat": {"type": "string", "enum": ["function"]},
            "dur": {"type": "integer"},
            "ph": {"type": "string", "enum": ["X"]},
            "pid": {"type": "integer"},
            "tid": {"type": "integer"},
            "ts": {"type": "integer"},
            "args": {
              "type": "object",
              "properties": {
                "stackDepth": {"type": "integer"}
              }
            }
          }
        }
      }
    }
    Copy to clipboard

## Example on how to use Profiling APIs

# Create Profile Handle
    GenieProfile_Handle_t profileHandle = NULL;
    GenieProfile_create(nullptr, &profileHandle);
    
    # Create Dialog Config
    GenieDialogConfig_Handle_t dialogConfigHandle   = NULL;
    GenieDialogConfig_createFromJson(dialogConfigStr, &dialogConfigHandle);
    
    # Bind Profile Handle to Dialog Config
    GenieDialogConfig_bindProfiler(dialogConfigHandle, profileHandle);
    
    # Create Dialog
    GenieDialog_Handle_t dialogHandle = NULL;
    GenieDialog_create(dialogConfigHandle, &dialogHandle);
    
    # Run Dialog Query API
    GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback);
    
    # Get Profiling Data
    const char* jsonData = nullptr;
    const Genie_AllocCallback_t callback([](size_t size, const char** data) {
      *data = (char*)malloc(size);
    });
    GenieProfile_getJsonData(profileHandle, callback, &jsonData);
    
    # Dump to JSON File and Free the Allocated Data
    std::ofstream outFile;
    outFile.open(profilePath);
    outFile << jsonData;
    outFile.close();
    free((char*)jsonData);
    
    # Free Profile Handle
    GenieProfile_free(profileHandle);
    Copy to clipboard

## Trace Profiling Example

Tracing can be enabled on profile handles in order to collect detailed event data. When tracing is enabled,
The JSON output from [GenieProfile\_getJsonData](https://docs.qualcomm.com/doc/80-63442-100/topic/function_GenieProfile_8h_1af16af81be1483300a7a121cfaebaab09.html#exhale-function-genieprofile-8h-1af16af81be1483300a7a121cfaebaab09)
contains a “traceEvents” section which adheres to the Chrometrace JSON schema. The resultant JSON file can be
loaded into Chrometrace viewer tools, such as **chrome://tracing** on Chrome-based web browsers,
or [Perfetto Trace Visualizer](https://ui.perfetto.dev/).

The following section demonstrates how to enable trace profiling in genie-app with the example profile config located at
${SDK\_ROOT}/examples/Genie/configs/profile/trace.json:

# genie-app trace profiling script
    profile config create pconfig1 path/to/trace.json
    profile create profile1 pconfig1
    
    dialog config create config1 path/to/dialogConfig.json
    dialog config bind profile config1 profile1
    dialog create dialog1 config1
    
    dialog query dialog1 "Here's a summary of llamas in 10 words."
    
    profile save profile1 profile_trace.json
    
    # Clean up
    dialog config free config1
    dialog free dialog1
    
    profile config free pconfig1
    profile free profile1
    Copy to clipboard

The script will generate a profile\_trace.json which can be directly loaded into Chrometrace viewers:

![Example of a Genie trace file viewed in chrome://tracing.](data:image/png;base64,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)

Last Published: Oct 02, 2025

[Previous Topic
Example on how to use Log APIs](https://docs.qualcomm.com/bundle/publicresource/80-63442-100/topics/logger.md) [Next Topic
Genie Pipeline](https://docs.qualcomm.com/bundle/publicresource/80-63442-100/topics/pipeline_pipeline.md)