Agent skill

Simulink Profiler Analyzer

by hashgraph-online in hashgraph-online/awesome-codex-plugins

Analyze Simulink Profiler results to find simulation bottlenecks or compare two profiler sessions to identify regressions.

Apache-2.0Auto-check passedDevelopment

Install Simulink Profiler Analyzer

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill simulink-profiler-analyzer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins simulink-profiler-analyzer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/summer521521/MATLAB_Simulink_plugin/skills/simulink-profiler-analyzer .claude/skills/simulink-profiler-analyzer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
simulink-profiler-analyzer
GitHub stars
1.3k
Token cost
~2.7k tokens
SKILL.md length
1,095 words
Files
11 (incl. scripts)
Skills in repo
714
Repo updated
First seen
Licence
Apache-2.0

At a glance

Analyze Simulink Profiler results to find simulation bottlenecks or compare two profiler sessions to identify regressions.

  • Works in 12 steps: Parse the data → Phase overview → Block-level hotspots → …
  • Asked to profile a Simulink model
  • SKILL.md covers Capabilities, Setup, Data Acquisition — Choose One and Analysis Workflow, plus 3 more sections
  • Analyze profiler data

What it does

Simulink Profiler Analyzer is an agent skill from hashgraph-online/awesome-codex-plugins. Analyze Simulink Profiler results to find simulation bottlenecks or compare two profiler sessions to identify regressions. Use when asked to profile a Simulink model, analyze profiler data, find what is slow, or compare simulation performance between two runs or releases.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts.

It sits in Development, covering Performance optimization. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.

When your agent uses it

  • Asked to profile a Simulink model
  • Analyze profiler data
  • Find what is slow
  • Compare simulation performance between two runs

Example prompts

  • “/simulink-profiler-analyzer”

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Parse the data
  2. Phase overview
  3. Block-level hotspots
  4. Execution tree hotspots
  5. Drill into specific subsystems
  6. Report findings
  7. Generate HTML report
  8. Parse both sessions
  9. Phase comparison
  10. Block-level comparison
  11. Exec node comparison for a specific subsystem
  12. Report comparison findings

What it can do on your machine

Read from SKILL.md and the folder at commit 9e7b281. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 9 files in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Simulink Profiler Analyzer loads about 2.7k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,095 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 9e7b281, republished under its Apache-2.0 licence (© hashgraph-online). 1,095 words, ~2,749 tokens.

Download SKILL.mdSave it as .claude/skills/simulink-profiler-analyzer/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
simulink-profiler-analyzer
description
Analyze Simulink Profiler results to find simulation bottlenecks or compare two profiler sessions to identify regressions. Use when asked to profile a Simulink model, analyze profiler data, find what is slow, or compare simulation performance between two runs or releases.

You are an expert at analyzing Simulink Profiler data. You help users identify simulation bottlenecks in a single profiler session, or compare two sessions to pinpoint performance regressions.

Capabilities

  • Run the Simulink Profiler on a model and capture results
  • Load saved profiler sessions from MAT-files
  • Parse Simulink.profiler.Data into structured tables (phases, block profiles, execution tree)
  • Identify the top time-consuming blocks and execution methods
  • Compare two profiler sessions side-by-side to find regressions
  • Drill into specific subsystems or model references to isolate root causes

Setup

Before any analysis, run the setup function located in the skill's scripts/ folder. This self-locating script adds its own folder to the MATLAB path regardless of where the skill is installed or which AI agent is used.

matlab
run('SCRIPTS_FOLDER/setup.m')

Replace SCRIPTS_FOLDER with the absolute path to this skill's scripts/ directory (derived from the <skill_files> entries below — use the parent folder of any listed .m file).

This makes the following functions available:

  • parseSimulinkProfilerData — parse Simulink.profiler.Data into structured tables
  • displayBlockHotspots — display top N block-level hotspots
  • displayExecTreeHotspots — display top N execution-tree hotspots
  • drillIntoSubsystem — filter exec tree to a specific subsystem
  • comparePhases — compare phase-level timing between two sessions
  • compareBlockProfiles — compare block-level timing between two sessions
  • compareExecNodes — compare exec-tree nodes for a subsystem across sessions
  • generateProfilerReport — generate a self-contained HTML report with findings

Data Acquisition — Choose One

Option A: Run the profiler on a model

Use when the user wants to profile a model that is loaded or can be loaded in MATLAB.

matlab
% Load the model if not already open
load_system('ModelName');

% Enable the profiler and simulate
set_param('ModelName', 'Profile', 'on');
simOut = sim('ModelName');

% Extract profiler data
profilerData = Simulink.profiler.Data(simOut);

After obtaining profilerData, proceed to the Analysis Workflow.

Option B: Load saved profiler data from a MAT-file

Use when the user provides a .mat file containing saved profiler results. The variable inside is typically named profilerData but may vary.

matlab
d = load('path/to/profilerData.mat');
% Inspect variable names
disp(fieldnames(d));
% Use the Simulink.profiler.Data variable (name may vary)
profilerData = d.profilerData;

If the user has a profilerData variable already in the MATLAB workspace, use it directly.

Option C: User provides profiler data in a MATLAB variable

The user may state that a variable like profilerData already exists in the workspace. Verify with whos profilerData and use it directly.

Analysis Workflow

Step 1 — Parse the data
matlab
results = parseSimulinkProfilerData(profilerData);

This returns a struct with:

  • results.modelName — run identifier string
  • results.totalSimTime — total wall-clock time in seconds
  • results.phases — table of top-level phases (compile, init, simulation, termination)
  • results.blockProfiles — table of per-block timing from the UI node tree
  • results.execTree — table of all execution nodes flattened from the exec tree
Step 2 — Phase overview

Display the phases table to understand where time is spent at the highest level:

matlab
fprintf('Model: %s\nTotal time: %.2f s\n\n', results.modelName, results.totalSimTime);
disp(results.phases);

Report which phase dominates (compile, simulation, initialization, or termination).

Step 3 — Block-level hotspots
matlab
displayBlockHotspots(results.blockProfiles);       % top 20 by default
displayBlockHotspots(results.blockProfiles, 10);    % or specify N

Identify blocks with high SelfTime_s — these are the actual compute bottlenecks. Blocks with high TotalTime_s but low SelfTime_s are containers whose children consume the time.

Step 4 — Execution tree hotspots
matlab
displayExecTreeHotspots(results.execTree);          % top 20 by default
displayExecTreeHotspots(results.execTree, 10);      % or specify N

This also shows per-call cost (selfTime / numberOfCalls) for each node.

Key execution methods to watch for:

  • ModelReference.Outputs.Major — model reference output computation per step
  • StateflowChild.Outputs.Major — Stateflow / MATLAB Function block execution
  • Scope.SetupRunTimeResources — scope initialization overhead
  • S-Function.SetupRunTimeResources — S-function initialization
  • DataStoreRead.Outputs.Major — data store access overhead
  • Methods ending in .Update — block state update cost
Step 5 — Drill into specific subsystems

When a subsystem or model reference is identified as slow, use:

matlab
drillIntoSubsystem(results.execTree, "SubsystemName");
drillIntoSubsystem(results.execTree, "SubsystemName", 0.01);  % custom threshold

Adjust the self-time threshold based on the model's total time. For large models, use a higher threshold.

Step 6 — Report findings

Summarize the findings in a structured format:

  1. Phase breakdown — where the wall-clock time is spent
  2. Top bottleneck blocks — blocks with highest self time
  3. Execution method hotspots — which simulation methods dominate
  4. Recommendations — actionable suggestions (e.g., disable scopes, use accelerator mode, reduce data store reads)
Step 7 — Generate HTML report

Generate a self-contained HTML report with all profiling data plus the findings and recommendations from Step 6. Build the findings string using Markdown-style formatting, then call generateProfilerReport:

matlab
findings = sprintf([ ...
    '## Key Findings\n' ...
    '- Simulation phase dominates at 95%% of total time\n' ...
    '- Scope blocks consume 2.3 s of init time\n' ...
    '\n' ...
    '## Recommendations\n' ...
    '- Disable or close all Scope blocks for batch runs\n' ...
    '- Switch model references to Accelerator mode\n']);
generateProfilerReport(results, findings);
generateProfilerReport(results, findings, 'MyReport.html');  % custom output path

The report includes:

  • Summary dashboard (total time, dominant phase, block/node counts)
  • Phase breakdown table with percentage bars
  • Top 20 block hotspots sorted by self time (with per-call cost)
  • Top 20 execution method hotspots sorted by self time (with per-call cost)
  • Findings and recommendations section (from the string you provide)
Show full SKILL.md (439 more words)Show less

Comparison Workflow (Two Sessions)

When comparing two profiler sessions (e.g., different releases, before/after a change):

Step 1 — Parse both sessions
matlab
r1 = parseSimulinkProfilerData(profilerData1);
r2 = parseSimulinkProfilerData(profilerData2);
Step 2 — Phase comparison
matlab
comparePhases(r1, r2);                              % default labels
comparePhases(r1, r2, "R2023b", "R2025b");          % custom labels
comparePhases(r1, r2, "Before", "After");            % or any labels
Step 3 — Block-level comparison
matlab
compareBlockProfiles(r1, r2);                        % top 20, default labels
compareBlockProfiles(r1, r2, 10, "Before", "After"); % top 10, custom labels
Step 4 — Exec node comparison for a specific subsystem

When a specific subsystem is identified as regressed, compare its internal exec nodes:

matlab
compareExecNodes(r1, r2, "SubsystemName");
compareExecNodes(r1, r2, "SubsystemName", 0.01, "R2023b", "R2025b");
Step 5 — Report comparison findings

Summarize:

  1. Overall slowdown — total time ratio
  2. Phase-level deltas — which phases regressed and by how much
  3. Top regressed blocks — blocks with the largest absolute or relative slowdown
  4. Root cause isolation — whether the regression is in block computation, model reference overhead, initialization, or engine-level overhead

Interpretation Guidelines

Model References
  • Normal mode: The profiler shows full internal detail (all child blocks and methods). Use this to identify specific block-level bottlenecks.
  • Accelerator mode: The profiler shows the model reference as a single opaque ModelReference.Outputs.Major entry with selfTime == totalTime. No internal detail is visible. A high self time here indicates overhead in the accelerated model reference execution engine, not in any specific block.
  • If an accelerator-mode model reference is slow, suggest the user switch one instance to Normal mode to see the internal breakdown.
Common Bottleneck Patterns
  • Scope.SetupRunTimeResources — Scope initialization can be very expensive. Recommend closing/disabling scopes for performance runs.
  • Display.Outputs.Major — Display blocks add overhead per step. Recommend removing or disabling for batch runs.
  • DataStoreRead/Write.Outputs.Major — Large data stores accessed every step. Consider bus signals or direct connections instead.
  • StateflowChild.Outputs.Major — Stateflow chart or MATLAB Function block execution. Profile the MATLAB code separately if needed.
  • S-Function.SetupRunTimeResources — S-function initialization. High values may indicate heavy one-time setup in mdlStart.
  • ToAsyncQueueBlock — Signal logging overhead. Reduce the number of logged signals if not needed.
  • compilePhase — An opaque phase with no child breakdown. High compile time is an engine-level characteristic; suggest using model references in accelerator mode to reduce recompilation.
Per-Call vs Total Time

Always compute per-call cost when comparing: selfTime / numberOfCalls. A block may have high total time simply because it is called many times (e.g., in a triggered or enabled subsystem). The displayExecTreeHotspots and drillIntoSubsystem functions include per-call cost automatically.

Rules

  • Always use parseSimulinkProfilerData to parse data — never manually traverse the tree.
  • Use the provided display and comparison functions instead of writing inline fprintf loops.
  • Never dump large raw tables. Show the top N entries (10–20) using the display functions.
  • When comparing two sessions, always label them clearly using the label parameters (e.g., "R2023b" and "R2025b", or "Before" and "After").
  • Sort by SelfTime_s descending to find actual compute bottlenecks, or by TotalTime_s descending to find the most time-consuming subtrees.
  • Adjust the selfTime filter threshold proportionally to total simulation time: use ~0.1% of total time as a minimum threshold for reporting.

© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (scripts) in plugins/summer521521/MATLAB_Simulink_plugin/skills/simulink-profiler-analyzer of hashgraph-online/awesome-codex-plugins.

  • SKILL.md
  • reference/profiler_report_template.html
  • scripts/compareBlockProfiles.m
  • scripts/compareExecNodes.m
  • scripts/comparePhases.m
  • scripts/displayBlockHotspots.m
  • scripts/displayExecTreeHotspots.m
  • scripts/drillIntoSubsystem.m
  • scripts/generateProfilerReport.m
  • scripts/parseSimulinkProfilerData.m
  • scripts/setup.m

Open the folder on GitHubat commit 9e7b281

Compare with similar skills

Simulink Profiler Analyzer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Simulink Profiler Analyzer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Simulink Profiler Analyzer this skillhashgraph-online/awesome-codex-plugins1.3k—~2.7kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
LLM Torch Profiler Analysissgl-project/sglang37k2 repos~6.4kAutomated safety check: PassApache-2.0
Pycrazyguitar/pysheeet8.2k—~886Automated safety check: PassMIT
Cmux Debugging Guidemanaflow-ai/cmux28k1 repos~1.1kAutomated safety check: PassCustom licence
Electron Heap Snapshot Analysiskeybase/client9.3k—~875Automated safety check: PassBSD-3-Clause

Similar skills

  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • LLM Torch Profiler Analysis

    sgl-project/sglang

    Unified LLM torch-profiler triage skill for sglang, vllm, TensorRT-LLM, and TokenSpeed.

    37k GitHub starsUsed in 2 repos~6.4k tokens
    DevelopmentAuto-check passed
  • Py

    crazyguitar/pysheeet

    Comprehensive Python programming reference covering syntax, concurrency, networking, databases, ML/LLM development, and HPC.

    8.2k GitHub stars~886 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Cmux Debugging Guide

    manaflow-ai/cmux

    Covers debug logging, the Debug menu, profiling rules and runtime pitfalls for working on the cmux macOS terminal app.

    28k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Analyzes V8, Chrome and Electron .heapsnapshot files with Node scripts to find memory leaks, detached DOM nodes and the retainer paths that keep objects alive.

    9.3k GitHub stars~875 tokensUpdated today
    DevelopmentAuto-check passed
  • Runs controlled JMH experiments on the Caffeine cache to find shared contention and hot-path waste, then reviews correctness and returns a reviewable patch.

    18k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check: notes

More from hashgraph-online/awesome-codex-plugins

All 714 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.3k GitHub stars~922 tokensUpdated today
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.3k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Rust API Test Harness

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

    1.3k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.3k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Calle

    hashgraph-online/awesome-codex-plugins

    Use CALL-E from Codex through the calle CLI. An agent skill from hashgraph-online/awesome-codex-plugins.

    1.3k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.3k GitHub stars~618 tokensUpdated today
    Auto-check passed

Categories

Questions about Simulink Profiler Analyzer

What does Simulink Profiler Analyzer do?

Analyze Simulink Profiler results to find simulation bottlenecks or compare two profiler sessions to identify regressions. Simulink Profiler Analyzer is an agent skill from hashgraph-online/awesome-codex-plugins. Analyze Simulink Profiler results to find simulation bottlenecks or compare two profiler sessions to identify regressions.

When should I use Simulink Profiler Analyzer?

Simulink Profiler Analyzer fits situations like: asked to profile a Simulink model; analyze profiler data; find what is slow; compare simulation performance between two runs.

How do I install Simulink Profiler Analyzer in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill simulink-profiler-analyzer -a claude-code`. Or copy the skill folder (plugins/summer521521/MATLAB_Simulink_plugin/skills/simulink-profiler-analyzer in hashgraph-online/awesome-codex-plugins) into .claude/skills/simulink-profiler-analyzer in your project. Claude Code loads it when a task matches its description.

How do I install Simulink Profiler Analyzer in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill simulink-profiler-analyzer -a codex`. Or copy the skill folder (plugins/summer521521/MATLAB_Simulink_plugin/skills/simulink-profiler-analyzer in hashgraph-online/awesome-codex-plugins) into .agents/skills/simulink-profiler-analyzer in your project. Codex loads it when a task matches its description.

Can I use Simulink Profiler Analyzer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill simulink-profiler-analyzer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/simulink-profiler-analyzer, .gemini/skills/simulink-profiler-analyzer, .github/skills/simulink-profiler-analyzer and .opencode/skills/simulink-profiler-analyzer in your project.

What does Simulink Profiler Analyzer need to run?

SKILL.md names no scripts, command-line tools or credentials: Simulink Profiler Analyzer is instructions for the agent only.

Does Simulink Profiler Analyzer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Simulink Profiler Analyzer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Simulink Profiler Analyzer use?

Simulink Profiler Analyzer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Simulink Profiler Analyzer use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Simulink Profiler Analyzer?

Skills that share tags, products or a category with Simulink Profiler Analyzer: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), LLM Torch Profiler Analysis (sgl-project/sglang, 37k stars), Py (crazyguitar/pysheeet, 8.2k stars) and Cmux Debugging Guide (manaflow-ai/cmux, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Simulink Profiler Analyzer?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,255 GitHub stars. The repository holds 714 skills in this directory. The repository was last updated on October 9, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.